我正在尝试编写一个泛型类,它需要一个自定义类名称并创建该类名称的一个实例。 创建之前和之后我会做一些适用于所有类的通用东西。 我想添加一些参数到类特定的实例。这就是为什么我添加了一个闭包,该闭包在实例创建之后被实例对象本身作为闭包的参数调用。关闭是可选的。 有趣的是调用函数不关闭工作得很好,如果我添加了关闭,我得到以下编译器错误:Swift/iOS SDK:具有类类型/名称封闭/块的泛型函数问题
Expected member name or constructor call after type name
此编译器错误适用于第一个参数,这是没有意义的,因为只是调用函数与第一个参数正常工作......
我已经加入我的简单例子运动场:
class Base {
var test1: Int = 0
}
class A: Base {
var test2: Int = 0
}
class B: Base {
var test3: Int = 0
}
func create<T: Base>(aClass: T.Type, addParameter:((T) -> Void)? = nil) {
println("Do generic stuff before object is created")
var object = aClass()
// Add custom class specific parameters to object
if let l_addParameter = addParameter {
l_addParameter(object)
}
println("Do generic stuff after object was created")
}
create(A)
create(B)
create(B, addParameter: { (b: B) -> Void in
b.test3 = 1000
})
任何帮助,将不胜感激!谢谢!
非常感谢!完美的作品! – Django