ОК, так что, как и многие из нас, новички, я дошел до того, что через пробную версию и ошибку я могу собрать относительно веселую и достаточно стабильную игру, не понимая ПОЧЕМУ много моих код работает, и у меня плохое понимание указателей и управления данными. Я пробовал учиться, но, поскольку мне не хватает формального академического образования в области информатики и имеют 15-летний опыт кодирования, вводный материал слишком прост, а передовой материал использует тонну терминологии, которую я не понимаю в паре с кодом что я делаю.Cocos2d/directC pointer inheritance; добавление детей и изменение данных
Я пытаюсь понять, почему иногда я могу определить новую переменную, указать ее на другую переменную, а затем косвенным образом изменить указанные данные, а иногда и не могу. Вот пример, в котором он работает, как я ожидал:
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 и указать его, он не работает.
Я понимаю, что я делаю очень принципиально другую операцию, в одном случае я меняю содержимое строки, а в другом случае добавляю ребенка. Я пришел к выводу, что «вы не можете добавлять детей к указанным данным», но я действительно понимаю это правильно, если да, почему бы и нет?