我有一個NSMutableArray
,它返回一些對象。 我添加的對象有屬性名稱,年齡。爲什麼調用NSObject指針的屬性會產生構建錯誤?
現在,當我使用返回的對象(obj.name
或obj.age
)這些特性, 編譯器說,沒有這樣的成員,使用(->
),而不是(.
)
據我所知,NSObject的不會有這些成員和因此它不會理解這個屬性。
但是,如果我使用setters和getters作爲方法([obj name]
或[obj age]
)語法而不是此屬性,我沒有得到任何錯誤。
但使用屬性意味着只調用setter或getter?
廣告Objective C假設是動態語言,對吧?
這很好。但點語法假設代表對setter或getter方法的調用。所以它不應該以一種方法調用它的方式來調用它是否存在? 反正..謝謝澄清:) – 2012-03-09 05:50:46
如果該財產應該只是只讀?除非編譯器確切地知道你正在談論哪個類/屬性,否則它不知道你是否應該被允許使用它(至少在你想設置值的情況下)。 – UIAdam 2012-03-09 05:55:14
@UIAdam:不錯的一點,但如果屬性是隻讀的,那麼setter不會被生成,並且我應該在運行時得到一個「無法識別的選擇器發送到對象異常」。 – 2012-03-09 06:00:55