Zac*_*iro 1 objective-c ios swift
我有一个带有几个文件的新Swift项目,我需要添加一些Objc代码.
在Build Settings,我Objective-C Generated Interface Header Name的MyProject-Swift.h
Product Module Name并且Product Name都是MyProject.
我的Objective-C Bridging Header是MyProject/MyProject-Bridging-Header.h
我的内容Bridging Header是:
#ifndef MyProject_Bridging_Header_h
#define MyProject_Bridging_Header_h
#import "Blakey.h"
#endif
Run Code Online (Sandbox Code Playgroud)
Blakey.h 非常简单:
@import Foundation;
#import "MyProject-Swift.h"
@class KeyPair;
@interface Blakey: NSObject
- (void)createKeyPairForSeed:(NSString *)seed;
@end
Run Code Online (Sandbox Code Playgroud)
和 Blakey.m
#import <Foundation/Foundation.h>
#import "Blakey.h"
@implementation Blakey
- (void)createKeyPairForSeed:(NSString *)seed;
{
}
@end
Run Code Online (Sandbox Code Playgroud)
(旁注:我知道我的函数返回一个void,一旦修复了这个问题就会改变,所以它返回一个实际的值)
为什么Xcode中抛出一个错误在#import "MyProject-Swift.h"中Blakey.h?
Project-Swift.h是成功编译项目时由Xcode自动生成的文件.这里抓住成功编译这个词如果您的项目有任何编译错误Project-Swift.h文件将不会生成.所以在某种程度上它变成了僵局.Bestway注释掉所有有编译错误的行,然后设法让它编译没有任何错误.只有在那之后Project-Swift.h才会生成.
附加信息,一旦Project-Swift.h文件生成,如果你打开它,如果你碰巧看到你的swift类没有被导入,因为Project-Swift.h只导入从NSObject扩展的类,所以不会导入普通的Swift类.
问题:
您需要导入Project-Swift.h.m文件而不是.h文件.所以修改你的Blakey为
#import <Foundation/Foundation.h>
#import "Blakey.h"
#import "MyProject-Swift.h"
@implementation Blakey
- (void)createKeyPairForSeed:(NSString *)seed;
{
}
Run Code Online (Sandbox Code Playgroud)
最后,除去 #import "MyProject-Swift.h"从Blakey.h
@import Foundation;
@class KeyPair;
@interface Blakey: NSObject
- (void)createKeyPairForSeed:(NSString *)seed;
@end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2929 次 |
| 最近记录: |