Mic*_*l A 19 objective-c ios ios-frameworks swift
我将swift框架导入Objective-c项目,如下所示:
@import MyFramework;
Run Code Online (Sandbox Code Playgroud)
问题是只有一些类被我导入框架的类识别.
被认可的班级:
public class RecognizedClass:UIViewController, WKNavigationDelegate, WKScriptMessageHandle
{ ... }
Run Code Online (Sandbox Code Playgroud)
这个课不是:
public class VeediUtils
{ ... }
Run Code Online (Sandbox Code Playgroud)
它们都是公共的,为什么第一个在工作区被识别而另一个没有?
另外我在头文件MyFramework-Swift.h中看到一个类
@interface RecognizedClass : UIViewController <WKNavigationDelegate, WKScriptMessageHandler>
Run Code Online (Sandbox Code Playgroud)
出现而另一个不
这是为什么?
还指出,当我将swift框架导入swift项目时,同样的过程也能正常工作
sal*_*t5r 30
如果您之前已将Project配置为与Swift集成并希望使用Swift Dynamic Framework,则必须以这种方式导入它(根据您的项目将{value}替换为适当的名称):
#import <{MyFramework}/{MyFrameworkMainClass}-Swift.h>
#import "{YourProjectTargetName}-Swift.h"
Run Code Online (Sandbox Code Playgroud)
小智 26
要访问objc中的swift类,不需要从NSObject继承,您需要:
@objc公共类VeediUtils
必须使用@objc属性标记Swift类或协议才能在Objective-C中访问和使用.该属性告诉编译器可以从Objective-C访问这段Swift代码.如果您的Swift类是Objective-C类的后代,则编译器会自动为您添加@objc属性.
| 归档时间: |
|
| 查看次数: |
27742 次 |
| 最近记录: |