2014-10-27 82 views

回答

4

如果該類從NSObject,在那裏你可以使用valueForKey:獲得的屬性繼承這將工作。

import Foundation 

class A: NSObject { 
    var x = 1 
} 

let a = A() 
let aval = a.valueForKey("x") 
println("\(aval)") 

注意aval是這裏的AnyObject?因爲沒有類型信息。您需要投射或測試自己的效果。

2

gregheo's answer上展開,如果要在問題中使用下標語法,可以通過執行subscript來實現。

class A: NSObject { 
    var x = 1 

    subscript(key: String) -> Int { 
     get { 
      return self.valueForKey(key) as Int 
     } 
     set { 
      self.setValue(newValue, forKey: key) 
     } 
    } 
} 

var a = A() 
println(a["x"]) 
a["x"] = 5 
println(a["x"]) 
相關問題