我有一个称为GameScene的类,它是cocos2d Scene的子类。

在那儿我有两层。 GameLayer和ControlsLayer。您可能已经知道我希望ControlsLayer在GameLayer中移动内容。确切地说,我正在尝试通过ControlsLayer在GameLayer中控制cPBody。

目前,我正在尝试将来自ControlsLayer的指令路由到GameScene中,然后再向下传递到GameLayer中。如果这样的话。无论如何,我无法正常工作。我有PHP背景,所以我认为我错误地将我的PHP经验应用于Obj-C。

我的想法是,我应该能够使用以下方法访问类/对象内的属性:

aThing *someThing = someInstance->aThing;


从我一直在看的示例代码来看,这似乎应该工作。但事实并非如此。这是代码,尽可能简化为http://pastebin.com/d49c9d0be

与其不知道如何解决此特定问题,不如说,我不明白什么?

最佳答案

在Objective-C中,您需要定义访问器方法以获取实例变量,除非您从相同的类类型调用它(例如,当您实现NSCopying协议且需要设置私有变量,但现在不必担心)。

最简单的方法是使用@property(retain) SomeClass *name;在标头中定义属性,并让Objective-C通过将@synthesize name = instanceVariable;放入实现中来生成它。然后,您可以使用object.name;[object name];访问该类之外的变量。有关更多信息,请参阅有关属性和面向对象编程的文档。

07-27 19:01