2013-04-03 63 views
-2

我不太清楚怎麼說這個問題,所以我會展示的例子。我想爲一個物業做一個物業。我目前正在使用不同類別的屬性:如何使財產屬性

player = [[Player alloc] init]; 
player.name = @"PlayerName"; 

這些屬性在Player類中定義,並且Player.h被導入。

我想爲.name創建一個'sub-property',所以它看起來就像player.name.newProperty。這方面的一個例子是的UILabel:

labelName = [[UILabel alloc] init]; 
self.labelName.text = @"String"; // .text being the 'sub-property' 
+1

「子屬性」不是我知道的任何語言的概念。你看到的是兩個獲得者縮短和加糖的形式。第一個是自己擁有的UILabel實例的getter,第二個是Label的文本的getter。要創建「子屬性」,請創建對象的子類,添加一個良性的getter或一些屬性,然後將該對象設置爲self的成員。 – CodaFi 2013-04-03 21:54:47

回答

1

眼下,player.nameNSString

相反,如果一個NSString的,你把它的自定義類,用它自己的屬性,您將能夠訪問他們作爲「子屬性」

player.name = [[MyCustomObject alloc] init]; 
player.name.subProperty = @"value"; 

請記住,你需要創建相應的.m和.h文件MyCustomObject並定義其屬性。

+0

我試過player.name = [[MyCustomObject alloc] init]但它不起作用,請你進一步解釋我應該怎麼做?我製作了MyCustomObject類並給了它屬性,它應該像你說的那樣工作,看起來像player.name.property,但是我得到一個錯誤。 – PappaSmalls 2013-04-03 22:18:06

+0

你有什麼錯誤?你說'name'屬性是'MyCustomObject'類型的嗎? – 2013-04-04 01:14:59

+0

其實我不太清楚怎麼做,請你解釋一下嗎? – PappaSmalls 2013-04-04 09:10:47