关于此警告消息有很多问题,但它通常表示错误。我想知道一般应该如何调试这个警告?这是什么意思?
我有一个案例,我已经知道如何解决它:
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];
但是,在有这个 bug 的代码中,如果你在调用 registerDefaults 的行放置一个断点,每次你尝试前进断点时都会产生警告,但它永远不会返回。该错误实际上不在该行中。我很幸运,马车线很近,所以我立即注意到了。但总的来说,应该如何跟踪这种错误?