找不到Project-Swift.h文件

Zac*_*iro 1 objective-c ios swift

我有一个带有几个文件的新Swift项目,我需要添加一些Objc代码.

Build Settings,我Objective-C Generated Interface Header NameMyProject-Swift.h

Product Module Name并且Product Name都是MyProject.


我的Objective-C Bridging HeaderMyProject/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

San*_*ari 8

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)