2014-09-25 146 views
0

這是我的問題。我有這樣的代碼:如何修改swift中的type屬性

class Person: NSObject { 
private var name: String 
var age: Int 
class var headsNumber: Int { 
    get{ 
     return Person.headsNumber 
    } 
    set{ 
     Person.headsNumber = newValue 
    } 
} 
init(name: String, age: Int){ 
    self.name = name 
    self.age = age 
} 

然後,我做的:

var p = Person(name: "Billy", age: 20) 
Person.headsNumber = 2 

我也得到一個錯誤,當我想修改headsNumber的價值。請幫助!

回答

0

通過執行getset你已經使這個屬性被計算出來(變量不被存儲)。 Person.headsNumber = 2開始一個循環,因爲您在setter方法中再次設置了headsNumber的新值。

如果您只是想要存儲headsNumber您必須刪除getset實現。