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];

ただし、このバグのあるコードでは、registerDefaults を呼び出す行にブレークポイントを配置すると、ブレークポイントを進めようとするたびに警告が生成されますが、戻りません。バグは実際にはその行にはありません。バギーラインが近くてラッキーだったのですぐに気付きました。しかし、一般的に、この種のバグはどのように追跡されるべきでしょうか?

4

0 に答える 0