如何传递类和方法来创建类的实例?

时间:2014-06-22 16:26:32

标签: swift

我刚开始学习Apple Swift我无法解决这个问题,我有方法帮助Objective-C请重写Apple Swift

- (void)setClass:(Class)aClass {
    NSObject *object = [[aClass alloc] init];
}

调用方法(用户从NSObject继承):

[self setClass:[User class]];

如何在Apple Swift上重复此类操作? 谢谢!

1 个答案:

答案 0 :(得分:8)

Here is an article关于在Swift中按名称实例化类。通过使用方法

创建Objective-C类可以解决该问题
+ (id)create:(NSString *)className
{
    return [NSClassFromString(className) new];
}

并从Swift调用它。 源代码在GitHub上:https://github.com/ijoshsmith/swift-factory

<强>更新

Here是一个更简单的解决方案:

var clazz: NSObject.Type = TestObject.self
var instance : NSObject = clazz()

if let testObject = instance as? TestObject {
    println("yes!")
}

当然,该类必须是NSObject的子类。

您的功能将是:

func setClass (myClass: NSObject.Type){
    var object = myClass()
}