我有一个问题。如果有人可以帮助我会很棒。 我有一个类myObject和一个HelloWorldLayer类。在HelloWorld中,我想在myObjectX上调用一个方法doSomething。
但是
[myObjectX doSomething];
它不想工作。
有人知道这样做的解决方案吗?
如何在myObjectX上调用doSomething而不更改剩余的代码。
非常感谢。
myObject.h
@interface myObject : CCSprite {
}
-(void)doSomething;
@end
myObject.m
@implementation myObject
-(void)doSomething
{
NSLog(@"test");
}
@end
HelloWorldLayer.h
@interface HelloWorldLayer : CCLayerGKLeaderboardViewControllerDelegate>
{
CCSprite *myObjectX;
}
-(void)test;
@end
HelloWorldLayer.m
@implementation HelloWorldLayer
-(void)test
{
myObjectX = [[myObject alloc]init];
[myObjectX doSomething];
}
@end
答案 0 :(得分:1)
ħ
@interface HelloWorldLayer:CCLayer
{
myObject *myObjectX;
}
您可以调用myObjectX方法。
答案 1 :(得分:0)
更改
myObject *myObjectX = [[myObject1 alloc]init];
到
myObject1 *myObjectX = [[myObject1 alloc]init];
因为在-(void)doSomething;
和myObject1
类中声明了myObject2
。
这正是消息所说的内容:-(void)doSomething;
课程中没有myObject
。
或者您可以添加:
@interface myObject:CCSprite
{
}
-(void)doSomething; // Add here and implement in your .m
@end
希望这有帮助。
编辑:
你做错了:
@interface HelloWorldLayer : CCLayerGKLeaderboardViewControllerDelegate>
{
CCSprite *myObjectX;
}
-(void)test;
@end
用这个纠正:
@interface HelloWorldLayer : myObject <CCLayerGKLeaderboardViewControllerDelegate>
{
}
@end
A Priori ,您可以在doSomething
中使用HelloWorldLayer
,因为它继承自myObject
。