2013-05-31 2 views
0

ОК, так что, как и многие из нас, новички, я дошел до того, что через пробную версию и ошибку я могу собрать относительно веселую и достаточно стабильную игру, не понимая ПОЧЕМУ много моих код работает, и у меня плохое понимание указателей и управления данными. Я пробовал учиться, но, поскольку мне не хватает формального академического образования в области информатики и имеют 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 и указать его, он не работает.

Я понимаю, что я делаю очень принципиально другую операцию, в одном случае я меняю содержимое строки, а в другом случае добавляю ребенка. Я пришел к выводу, что «вы не можете добавлять детей к указанным данным», но я действительно понимаю это правильно, если да, почему бы и нет?

ответ

0

Я нашел ошибку кода в другом блоке, который установил его видимость в FALSE.

Я пытался сделать код более подключите и работайте путем изменения «shopWindowBox», «unitWindowBox», и «unlockablesWindowBox» все локально определяется переменная с windowBox, но моя «hideUnitWindowBox» и функция «hideUnlockablesWindowBox» устанавливали видимость окна моего магазина FALSE после его заполнения.

Я думаю, что указатели работают не так, как я ожидал, они работают ЛУЧШЕ, чем я ожидал ... Я тупо слил 4 разных окна в одно окно с помощью указателей.

 Смежные вопросы

  • Нет связанных вопросов^_^