Swift2 .alloc()';在Swift中不可用:请改用对象初始值设定项
错误是: 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合在处创建的密钥的键值编码。” Swift 2.0中的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(
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()
}