我试图在我的Objective-C代码中使用
Swift类,但是我的
Swift类似乎没有出现在生成的标题中.因此,我的构建失败了“使用未声明的标识符”HelloWorld“”.
我使用模板来创建一个名为TestApp的项目.
我的目标中有以下Build Settings:
>产品名称:TestApp
>产品模块名称:TestAppModule
>定义模块:是的
Apple的文档说使用#import< TestApp / TestAppModule-Swift.h>但这不行.
相反,我在我的“.m”文件中使用#import“TestAppModule-Swift.h”.似乎找到了这个.
我可以导航到它,它看起来像这样…
// Generated by Swift version 1.0 (swift-600.0.34.4.5) #if defined(__has_include) && __has_include(<swift/objc-prologue.h>) # include <swift/objc-prologue.h> #endif ...etc...
但在那里没有定义类.
我在项目中有一个Swift文件,看起来像这样…
class HelloWorld { func hello() { println("hello world") } }
为什么这不工作使用标准头文件位置#import< TestApp / TestAppModule-Swift.h>?
这是我已经得到它的工作.你可以看到更大的答案
here.
原文链接:https://www.f2er.com/swift/319666.html改变这个:
class HelloWorld { func hello() { println("hello world") } }
至:
@objc class HelloWorld { class func newInstance() -> HelloWorld { return HelloWorld() } func hello() { println("hello world") } }
然后,在您的ObjC文件中:
#import "TestApp-Swift.h"
并打电话给这样:
HelloWorld * helloWorld = [HelloWorld newInstance]; [helloWorld hello];