0

我正在使用我在其他几个项目中使用过的代码,没有发生任何事故。突然,我在使用相同的代码时收到随机错误消息 - 但仅限于一个特定项目。

此代码已在其他几个项目中完美运行:

@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”不是可识别的选择器。

(编辑/已解决):调试器实际上并没有抱怨代码 - 而是断点:关于无法找到以前放置在那里的断点的东西。删除 Xcode 的项目断点列表使一切变得更好。

4

1 回答 1

0

调试器实际上并没有在抱怨代码——而是在抱怨断点:关于无法找到之前放置在那里的断点的事情。删除 Xcode 的项目断点列表使一切变得更好。

于 2013-01-22T17:16:22.990 回答