好吧,就像我们很多新手代码黑客一样,我已经到了这样的地步,通过反复试验,我可以拼凑出一个相对有趣且相当稳定的游戏,而无需真正理解为什么我的很多代码都有效,而且我有一个对指针和数据管理缺乏了解。我尝试过学习,但是由于我缺乏计算机科学的正式学术背景并且有 15 年的编码经验,因此入门的东西太容易了,而高级的东西使用了大量我不理解的术语与代码配对我做的。
我试图理解为什么有时我可以定义一个新变量,将其指向另一个变量,然后间接更改指向的数据,而有时我不能。这是一个示例,它可以按我的预期工作:
NSString *myString = [MySingleton sharedMySingleton].singletonString;
myString = @"Hello there!";
[myString retain];
通过更改本地定义的“myString”,我可以更改单例字符串。
这是一个无法按预期工作的示例:
HUDLayer *windowBox = shopWindowBox;
[windowBox addChild: shop];
[windowBox retain];
在这种情况下,HUDLayer 本质上只是一个空白文件,“shop”是包含我的商店的菜单,“shopWindowBox”是 HUDLayer 的一个实例。如果我用 [shopWindowBox addChild: shop] 调用代码,它可以工作,但是一旦我尝试定义一个新的 HUDLayer 并指向它,它就不起作用了。
我知道我正在做一个完全不同的操作,在一种情况下我正在更改字符串的内容,在另一种情况下我正在添加一个孩子。我得出的结论是“你不能将孩子添加到有针对性的数据中”,但我真的理解正确吗,如果是这样,为什么不呢?