0

好吧,就像我们很多新手代码黑客一样,我已经到了这样的地步,通过反复试验,我可以拼凑出一个相对有趣且相当稳定的游戏,而无需真正理解为什么我的很多代码都有效,而且我有一个对指针和数据管理缺乏了解。我尝试过学习,但是由于我缺乏计算机科学的正式学术背景并且有 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 并指向它,它就不起作用了。

我知道我正在做一个完全不同的操作,在一种情况下我正在更改字符串的内容,在另一种情况下我正在添加一个孩子。我得出的结论是“你不能将孩子添加到有针对性的数据中”,但我真的理解正确吗,如果是这样,为什么不呢?

4

1 回答 1

0

我在另一个将其可见性设置为 FALSE 的块中发现了一个代码错误。

我试图通过将“shopWindowBox”、“unitWindowBox”和“unlockablesWindowBox”全部更改为使用 windowBox 的本地定义变量来使代码更加即插即用,但是我的“hideUnitWindowBox”和“hideUnlockablesWindowBox”函数正在设置可见性我的商店橱窗在填充后变为 FALSE。

我猜指针不仅像我预期的那样工作,它们比我预期的更好......我愚蠢地使用指针将 4 个不同的窗口合并到一个窗口中。

于 2013-05-31T01:17:32.807 回答