Iphone 在Cocos2d中链接类方法

Iphone 在Cocos2d中链接类方法,iphone,objective-c,ios,cocos2d-iphone,Iphone,Objective C,Ios,Cocos2d Iphone,我正在努力使子弹引擎与游戏代码的其余部分集成 这包括使Player类能够从BulletCache类调用方法,而不会使程序崩溃(错误读取“无法识别的选择器已发送到实例…”) 到目前为止,我的集成尝试包括在播放器类的接口中创建BulletCache对象,例如: @interface Player : LevelObject { BulletCache *bulletCache; } 但我认为需要一个构造函数来进一步链接这两个类。这两个类都不是直接相关的(Player类是几个类的子类,尽管最终是CC

我正在努力使子弹引擎与游戏代码的其余部分集成

这包括使Player类能够从BulletCache类调用方法,而不会使程序崩溃(错误读取“无法识别的选择器已发送到实例…”)

到目前为止,我的集成尝试包括在播放器类的接口中创建BulletCache对象,例如:

@interface Player : LevelObject
{
BulletCache *bulletCache;
}
但我认为需要一个构造函数来进一步链接这两个类。这两个类都不是直接相关的(Player类是几个类的子类,尽管最终是CCNode的子类),尽管它们都是CCNode的子类

有没有人能给我一些关于如何进一步链接这两个类的更多提示,以便Player类方法可以调用BulletCache的方法

编辑:因为我得到一个无限循环,并且控制台在BulletCache类中不断报告与CCSprite相关的错误,所以我在BulletCache方法旁边放置了一个断点:

CCSpriteFrame* bulletFrame = [[CCSpriteFrameCache sharedSpriteFrameCache] 
spriteFrameByName:@"bullet1big e0000.png"];
并运行“构建和调试”。单击主菜单上的“新建游戏”按钮后,控制台显示加载日志,然后立即停止,控制台底部显示消息:
“GDB:在断点1处停止(命中计数:1)“-init Line 84”第84行是我放置断点的地方,因此程序似乎对此代码有问题。但它看起来不正确,并且方法应该匹配--我没有收到任何“警告:-spriteFrameByName可能不会响应CCSpriteFrame”

请确保导入BulletCache类。 您还需要在Player的init方法中初始化bulletCache

然后BulletCache类的任何实例方法都可以被

[bullectCache somemethod]

某些方法需要被BulletCache类中的方法替换

thx!如何在init方法中初始化BulletCache?我得到了一般要点,但是我将使用什么方法进行初始化,例如-(id)init{BulletCache*BulletCache=[BulletCache init];}我不确定在Player类中可以使用什么其他方法初始化该类。如果已将其声明为实例变量,则只需在Player类的init或scene方法中执行bulletCache=[bulletCache init];我添加了bulletCache=[bulletCache init];方法,但它创建了一个无限循环并使应用程序崩溃。是否有帮助?请尝试将[BulletCache init]更改为[BulletCache node]…还可以尝试使用断点进行调试,找出程序的跳转位置..然后我可以提供帮助。下次如果有任何与代码相关的查询..请使用格式在问题中发布更新..更易于阅读..来自您的代码..我相信您正在加载一些图像(CCsprite)在BulletCache类中。尝试在那里放置断点并测试它是否继续。很可能您没有正确设置映像加载。