如何调试“警告:尝试使用不在框架中的块创建USE_BLOCK_IN_FRAME变量”?

时间:2012-09-18 10:53:30

标签: objective-c ios

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

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

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

0 个答案:

没有答案