ローカル変数を初期化するのを忘れていましたが、使用しても警告が表示されませんでした。を使用しているためARC
、変数は に初期化されてnil
いるため、害はありませんが、初期化されていない値を使用したときに警告が必要です。を無効にするARC
と、期待どおりの警告が表示されます。
NSString *foo;
NSString *baz;
if (bar) {
foo = @"fizz";
} else {
foo = @"buzz";
}
NSLog(@"foo: %@", foo); // foo: (fizz|buzz)
NSLog(@"baz: %@", baz); // baz: (null)
ARC なし:
/blah/blah/blah/Blah.m:14:18: note: initialize the variable 'foo' to silence this warning
NSString *foo;
^
- 編集 -
local blocks を使用して、初期化されていない値を不可能にする方法を見つけました。これにより、警告が不要になります。