我刚开始学习Apple Swift我无法解决这个问题,我有方法帮助Objective-C请重写Apple Swift
- (void)setClass:(Class)aClass {
NSObject *object = [[aClass alloc] init];
}
Run Code Online (Sandbox Code Playgroud)
调用方法(用户从NSObject继承):
[self setClass:[User class]];
Run Code Online (Sandbox Code Playgroud)
如何在Apple Swift上重复此类操作?谢谢!
这是一篇关于在Swift中按名称实例化类的文章.通过使用方法创建Objective-C类可以解决该问题
+ (id)create:(NSString *)className
{
return [NSClassFromString(className) new];
}
Run Code Online (Sandbox Code Playgroud)
并从Swift调用它.源代码在GitHub上:https://github.com/ijoshsmith/swift-factory
更新:
这是一个更简单的解决方案:
var clazz: NSObject.Type = TestObject.self
var instance : NSObject = clazz()
if let testObject = instance as? TestObject {
println("yes!")
}
Run Code Online (Sandbox Code Playgroud)
当然,该类必须是NSObject的子类.
那么你的功能是:
func setClass (myClass: NSObject.Type){
var object = myClass()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8729 次 |
| 最近记录: |