找不到Project-Swift.h文件

扎克·夏皮罗(Zack Shapiro)

我有一个包含几个文件的新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

Blakey.h 很简单:

@import Foundation;

#import "MyProject-Swift.h"
@class KeyPair;

@interface Blakey: NSObject

- (void)createKeyPairForSeed:(NSString *)seed;

@end

Blakey.m

#import <Foundation/Foundation.h>
#import "Blakey.h"

@implementation Blakey


- (void)createKeyPairForSeed:(NSString *)seed;
{

}

@end

(旁注:我知道我的函数返回一个void,此问题解决后,它将在以后更改,因此它将返回实际值)

为什么Xcode在#import "MyProject-Swift.h"in抛出错误Blakey.h

桑迪普·班达里(Sandeep Bhandari)

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;
{

}

最后,除去 #import "MyProject-Swift.h"Blakey.h

@import Foundation;

@class KeyPair;

@interface Blakey: NSObject

- (void)createKeyPairForSeed:(NSString *)seed;

@end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章