关于此警告消息存在很多问题,但通常表示存在错误。我想知道这个警告一般应该如何调试?这是什么意思?
我有一个案例,我已经知道如何解决它:
NSDictionary *lastUpdatedAt = [NSDictionary dictionaryWithObjectsAndKeys:
@"es", [NSDate distantPast],
@"it", [NSDate distantPast], nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:
[NSDictionary dictionaryWithObjectsAndKeys:
@"es", @"lang",
[NSNumber numberWithInt:0], @"groupedBy",
[NSNumber numberWithBool:FALSE], @"hideKnownWords",
lastUpdatedAt, @"lastUpdatedAt",
nil]];
错误是在初始化lastUpdatedAt时,我错误地将键放在应该有值的位置。修复是:
NSDictionary *lastUpdatedAt = [NSDictionary dictionaryWithObjectsAndKeys:
[NSDate distantPast], @"es",
[NSDate distantPast], @"it",nil];
但是,在带有此错误的代码中,如果在调用registerDefaults的行上放置断点,则每次尝试推进断点时都会生成警告,但它永远不会返回。该错误实际上不在该行中。我很幸运,马车线很近,所以我马上就注意到了。但总的来说,应该如何跟踪这种错误?