0

关于此警告消息有很多问题,但它通常表示错误。我想知道一般应该如何调试这个警告?这是什么意思?

我有一个案例,我已经知道如何解决它:

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 的行放置一个断点,每次你尝试前进断点时都会产生警告,但它永远不会返回。该错误实际上不在该行中。我很幸运,马车线很​​近,所以我立即注意到了。但总的来说,应该如何跟踪这种错误?

4

0 回答 0