我正在使用我在其他几个项目中使用的代码而没有发生任何事故。突然间,我在使用相同的代码时收到随机错误消息 - 但只在一个特定的项目中。
此代码在其他几个项目中运行良好:
@implementation MyClass
static NSMutableDictionary *elements;
+(void) initialize {
if (!elements)
elements = [NSMutableDictionary new];
}
+(void) MyFunction: (some parameters) {
NSString *class_name = NSStringFromClass([self class]);
NSMutableArray *elementList = [elements valueForKey: class_name];
}
更改了一些内容,现在[elements valueForKey:]调用会生成以下错误消息:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: NSCFString encodeBytes:length:forKey: unrecognized selector sent to instance
它实际上比那更奇怪。如果我逐步执行+(void)初始化,我会看到元素以nil开头,然后按预期设置为NSMutableDictionary。但是,即使在创建该实例之后,对[elements valueForKey:[any NSString]]的任何调用都会导致“NSCFString encodeBytes”不是可识别选择器的相同错误。
(EDIT /已解决):调试器实际上并没有抱怨代码 - 而是断点:关于无法找到之前放置的断点的事情。删除Xcode的项目断点列表使它变得更好。
答案 0 :(得分:0)
调试器实际上并没有抱怨代码 - 而是断点:关于无法找到之前放置的断点的事情。删除Xcode的项目断点列表使它变得更好。