警告達
incomplete implementation
.hで宣言したメソッドが.mにないと出てくる。
Storyboardから始めるiPhoneアプリ開発 Incomplete implementation
expression result unused
返り値使ってない行に出てくる。
戻り値を使っていない行に対して "Expression result unused" という警告が表示される。
(例)[[NSObject alloc]init];
(回避策) 行頭に (void) を付ける(void) [[NSObject alloc]init];
objective-c - memo
ただ、この使い方で間違いない場合、コンパイル時に警告が表示されるのは間際しいので、この時に限って "Expression result unused" を表示させないようにしてみます。
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-value" [[_EzFlashStatusBarWhenMemoryWarning alloc] init]; #pragma clang diagnostic popEZ-NET: Expression result unused 警告を表示しないようにする
Capturing 'xxx' strongly in this block is likely to lead to a retain cycle
block構文でselfやインスタンス変数を参照すると出てくる。
@implementation Hoge -(void)hogeMethod{ hogeHandler = ^(Fuga *fuga){ [self someMethod:fuga]; }; } @endこれ,selfがずっと存在するからhogeHandlerの参照が減らないのね.だから__blockつけてやると,Reference Count使わない指定ができるそうな.
訂正版
@implementation Hoge -(void)hogeMethod{ // ここでselfを別にコピー(こいつはブロック専用だから参照カウントを減らせてGCできる) __block Hoge *blockself = self; hogeHandler = ^(Fuga *fuga){ [blockself someMethod:fuga]; }; } @end= ARC retain cycle - ぺっくブログミラー@peccul
Local Declaration of "xxx" Hides Instance Variable
ローカル変数とインスタンス変数の名前が被ってると出てくる。
Objective-Cと戦うブログ: 「Local Declaration of "xxx" Hides Instance Variable」というエラーについて