在xcode更新后找不到我自己的(新)类

时间:2010-08-18 08:11:22

标签: iphone objective-c xcode

我正在开发iphone应用程序。昨天我将我的xcode更新到最新版本并清理构建文件夹(删除它),然后创建新类(没什么特别的):

@interface EnemyFactory : NSObject {

}
+(Enemy *)properReferenceForName: (NSString *) name;
@end

实施是微不足道的,并不重要。现在发生了什么: 我有这样的事情:

Enemy *tempEnemy = [EnemyFactory properReferenceForName:@"enemyname"];

但代码永远不会到达函数properReferenceForName。我有这样的堆栈的EXC_BAD_ACCESS:

0   0x02a95e2b in realizeClass
1   0x02a96dad in _class_getNonMetaClass
2   0x02a90eb0 in _class_initialize
3   0x02a961f6 in prepareForMethodLookup
4   0x02a8f6c9 in lookUpMethod
5   0x02a8f836 in _class_lookupMethodAndLoadCache
6   0x02a9dad3 in objc_msgSend
7   0x0000595d in -[GameLayer newEnemy:] at GameLayer.m:368

更新前。 Xcode没有警告或错误。符号已声明。 有趣的是:当我逐步调试整个调用时,一切都很顺利...... 我坚持了8个小时。

更新1:

[[EnemyFactory alloc] init]会抛出相同的错误

更新2:

当我这样做时: 在初始化期间,某些大师班中的[EnemyFactory alloc]所有内容都是绚丽的。

2 个答案:

答案 0 :(得分:0)

看一下GameLayer.m第368行与[GameLayer newEnemy:]的关系。我发布的代码没有任何问题。

答案 1 :(得分:0)

如果代码永远不会到达您的类方法,问题就是堆栈跟踪开始的地方,即[GameLayer newEnemy:]

查找您可能需要保留但未保留在newEnemy方法中的对象。