使用setValue(value,forKey)获取通用属性

时间:2015-12-29 17:34:52

标签: swift generics

我有以下示例代码:

class A<T> : NSObject {
    var value: T? = nil
}

class B<T> : NSObject {
    private var _value: T? = nil
    var value: AnyObject?{
        get{
            return _value as? AnyObject
        }
        set{
            _value = newValue as? T
        }
    }
}

var obj = B<Int>()
print(obj.value) // "nil"
obj.setValue(5, forKey: "value")
print(obj.value!) // "5"

如果我使用B类,这可以正常工作。但是,我的目标是使用较小的类A,由于setValue函数抛出异常,我无法使用它:

  

此类不是键值的符合键值的值

是否有办法将值传递给setValue函数中的泛型属性?如果是官方限制,我可以在哪里读到这个?

0 个答案:

没有答案