aho*_*ang 3 objective-c-runtime swift objective-c-swift-bridge
我在现有的Objective-C项目中编写了一个Swift类.到目前为止,桥接工作非常顺利.我确实有一个方法,我在运行时使用NSClassFromString()生成一个类.当字符串是我的Swift类名时,它返回nil.
class MySwiftClass : NSObject {}
Run Code Online (Sandbox Code Playgroud)
在Objective-C中:
Class myClass = NSClassFromString(@"MySwiftClass");
Run Code Online (Sandbox Code Playgroud)
而myClass每次都是零.我也尝试过:
Class myClass = NSClassFromString(@"MyAppName.MySwiftClass");
Run Code Online (Sandbox Code Playgroud)
仍然没有.
Osm*_*und 13
所有swift类都使用Product Module Name一个点和它们的命名空间的类名(Module.Class).如果您想在Objective-C代码中为类使用"MySwiftClass"名称; 你可以添加@objc(MySwiftClass)注释来公开相同的swift类名(没有模块):
@objc(MySwiftClass)
class MySwiftClass{
...
}
Run Code Online (Sandbox Code Playgroud)
然后
Class myClass = NSClassFromString(@"MySwiftClass");
Run Code Online (Sandbox Code Playgroud)
将包含类而不是nil.
| 归档时间: |
|
| 查看次数: |
1515 次 |
| 最近记录: |