我有一个称为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]
;访问该类之外的变量。有关更多信息,请参阅有关属性和面向对象编程的文档。