Swift2 .alloc()';在Swift中不可用:请改用对象初始值设定项

Swift2 .alloc()';在Swift中不可用:请改用对象初始值设定项,swift2,Swift2,错误是: 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合在处创建的密钥的键值编码。” Swift 2.0中的alloc()的替代方案是什么 public func swiftObjWithDict(dict: NSDictionary, cos: AnyClass) -> AnyObject? { let obj: AnyObject = cls // It’s cls(

错误是:

由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合在处创建的密钥的键值编码。”

Swift 2.0中的
alloc()
的替代方案是什么

public func swiftObjWithDict(dict: NSDictionary, cos: AnyClass) -> AnyObject? {
    let obj: AnyObject = cls    // It’s cls() before, but in swift 2.0 it’s unavailable.
    let value = "xxx"
    let k = "created_at"
    obj.setValue(value, forKey: k)     // throw an error

}

好的,这与编译器错误无关。函数中的参数dict用于什么?它是字典(符合键值编码)。请再次检查您的代码,或向我们解释您试图执行的操作…

什么是
cls
import Foundation

class A {
    func f() {
        print("A class")
    }
}
class B: A {
    override func f() {
        print("B class, child of ", terminator:"")
        super.f()
    }
}

func foo(cls: AnyClass)->AnyObject? {
    switch cls {
    case is B.Type:
        return B()
    case is A.Type:
        return A()
    default:
        return nil
    }
}

if let a = foo(A.self) as? A {
    a.f()
}

if let b = foo(B.self) as? B {
    b.f()
}