好吧,我們很多新手codehack,我已經到了點,通過試驗和錯誤,我可以扔在一起相對有趣和合理穩定的遊戲,沒有真正理解爲什麼很多我的代碼的作品,我對指針和數據管理了解甚少。我嘗試過學習,但是由於我缺乏計算機科學的正式學術背景,並且有15年的編程經驗,所以介紹的內容太簡單了,高級內容使用了大量我不明白的代碼術語我做的。Cocos2d/directC指針繼承;添加兒童與更改數據
我想知道爲什麼有時我可以定義一個新變量,將它指向另一個變量,然後間接更改指向的數據,有時候我不能。這裏有一個例子如果它確實如我所料工作:
NSString *myString = [MySingleton sharedMySingleton].singletonString;
myString = @"Hello there!";
[myString retain];
通過改變本地定義和「myString」我可能會導致更改單串。
下面是一個例子,其中它不工作,我想到:
HUDLayer *windowBox = shopWindowBox;
[windowBox addChild: shop];
[windowBox retain];
在這種情況下,HUDLayer只是一個基本空白的文件,「店」是包含我的店的菜單,和「shopWindowBox 「是HUDLayer的一個實例。如果我用[shopWindowBox addChild:shop]調用代碼,它可以工作,但只要我嘗試定義一個新的HUDLayer並指向它,它就不起作用。
我知道我正在做一個非常根本不同的操作,在一種情況下,我正在更改字符串的內容,而在另一種情況下,我正在添加一個孩子。我得出的結論是「你不能把孩子添加到一個尖銳的數據」,但我真的很正確地理解這一點,如果是的話,爲什麼不呢?