我将swift框架导入到Objective-C项目中,如下所示:
@import MyFramework;
问题在于我正在导入框架的类只能识别某些类。
被认可的课程:
public class RecognizedClass:UIViewController, WKNavigationDelegate, WKScriptMessageHandle { ... }
该类不是:
public class VeediUtils { ... }
它们都是公开的,那么为什么第一个在工作空间中被识别,而另一个却没有?
我也在头文件MyFramework-Swift.h中看到一个类
@interface RecognizedClass : UIViewController <WKNavigationDelegate, WKScriptMessageHandler>
出现而其他不出现
这是为什么?
另外要指出的是,当我将swift框架导入swift项目时,该相同的程序也可以工作
要访问不是从NSObject继承的objc中的swift类,您需要:
@objc公共课程VeediUtils
Swift类或协议必须使用@objc属性标记,才能在Objective-C中访问和使用。该属性告诉编译器可以从Objective- C访问这段Swift代码。如果您的Swift类是Objective-C类的后代,则编译器会自动为您添加@objc属性。
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html