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

Swift 如何传递类和方法来创建类的实例?,swift,Swift,我刚开始学习Apple Swift我无法处理这个问题,我有方法帮助Objective-C请在Apple Swift上重写 - (void)setClass:(Class)aClass { NSObject *object = [[aClass alloc] init]; } 调用方法(从NSObject继承的用户): 如何在Apple Swift上重复这些操作? 谢谢大家! 关于在Swift中按名称实例化类。通过使用方法创建Objective-C类来解决该问题 + (id)create

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

- (void)setClass:(Class)aClass {
    NSObject *object = [[aClass alloc] init];
}
调用方法(从NSObject继承的用户):

如何在Apple Swift上重复这些操作? 谢谢大家!

关于在Swift中按名称实例化类。通过使用方法创建Objective-C类来解决该问题

+ (id)create:(NSString *)className
{
    return [NSClassFromString(className) new];
}
从斯威夫特那里叫它。 源代码位于GitHub上:

更新:

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

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()
}

@马丁纳:不,请仔细阅读我的问题!根据这里给出的答案,
[User class]
在Swift中是
User.self
,而
[[aClass alloc]init]
只是
aClass()
。你试过了吗?请看一下:为链接提供上下文鼓励链接到外部资源,但请在链接周围添加上下文,这样你的其他用户就会知道它是什么以及它为什么存在。始终引用重要链接的最相关部分,以防目标站点无法访问或永久脱机。请注意,
AnyClass
是一种更通用的方法,用于编写与class@newacct我知道。该解决方案仅适用于NSObject子类。使用
AnyClass
将导致错误:
“AnyObject”不能用“()”
func setClass (myClass: NSObject.Type){
    var object = myClass()
}