2017-04-05 30 views
5

Objective-CコードのbecomeFirstResponder関数呼び出しのすべてでこの警告を開始します。"warn_unused_result"属性で宣言された関数の戻り値を無視する

「warn_unused_result」属性で宣言された関数の戻り値を無視

[self.phoneNumberField becomeFirstResponder]; // warning here!!! 

ここにこの警告を抑制するための最良の方法は何ですか?


編集:私も私も、この、

を試みたが、これを試してみました

BOOL ignore = [self.emailField becomeFirstResponder]; 

しかし、それで、Xcodeのは、変数ignoreについて警告しているが使用されていない:(


BOOL ignore = [self.phoneNumberField becomeFirstResponder]; 
if (ignore) { 

} 

Tこの場合、警告は消えています。しかし私は自分のコードレビューを過ぎることはできないと思います。それはあまりにも醜いです!

+2

コードをイメージとして追加しないでください。それをテキストにします。 –

+2

実際には戻り値をチェックし、 'NO'を返すと何かをすることができます。 – rmaddy

+0

@ AminNegm-Awadはそれを指摘してくれてありがとう。イメージの代わりにテキストに更新しました。 –

答えて

19

式をvoid式にキャストする必要があります。

(void)[self.emailField becomeFirstResponder]; 

(でも、私は警告を再現することはできませんただし、これは警告フラグに依存する場合があります。。)あなたの編集し

BOOL ignore = [self.emailField becomeFirstResponder]; 

そう

BOOL ignore = [self.emailField becomeFirstResponder]; 
ignore = ignore; 
// or 
(void)ignore; 

べき警告を解除してください。 (それは私の旗ではありますが)しかし、これはあまりにも醜いハックです。

BTW:属性には理由があります。戻り値をテストしないことをお勧めします。

+0

xD非常に賢い答え、ありがとう –

関連する問題