私はちょうど答えを見てきましたhereしかし助けていませんでした。コンパイラがAttributes on method implementation and its declaration must match
と言うよりも、メソッドの宣言だけに非推奨の属性を追加します。メソッドの実装にsmthを追加する必要がありますか?Xcode 4のメソッドを正しく非難する方法
ありがとうございます!
私はちょうど答えを見てきましたhereしかし助けていませんでした。コンパイラがAttributes on method implementation and its declaration must match
と言うよりも、メソッドの宣言だけに非推奨の属性を追加します。メソッドの実装にsmthを追加する必要がありますか?Xcode 4のメソッドを正しく非難する方法
ありがとうございます!
だけ宣言に属性を追加します。
@interface Blah
- (void)method __attribute__((deprecated));
@end
あなたが翻訳のために適切である、これは正常に動作する必要があります含まれて提供されます。おそらく、の定義に属性を追加しましたが、の宣言はではありませんか?それ以外の場合は、デモンストレーション(コードサンプル)が役立ちます。
更新
上記のアプローチは、一般的なメッセージのために動作しますが、打ち鳴らすがIBAction
秒で混乱します表示されます。
clangを使用すると、ibaction
の属性が暗黙的に挿入されます(以前はtypedef
だった)。属性は宣言で指定され
のみ、プリプロセッサの出力は次のとおりです。
// preprocessed declaration
- (void)__attribute__((ibaction))setSomething:(id)sender __attribute__((noreturn));
// preprocessed implementation
- (void)__attribute__((ibaction))setSomething:(id)sender
...
だから、コンパイラはちょうどこの隠された装飾で混乱している表示され、あなたはまたに属性を追加する必要がありますメソッドがIBAction
であるときの警告を抑制する実装/定義。
少なくとも、Xcode 4.3.2ではclangを使用して、メソッドの宣言と実装の両方にdeprecated属性を設定する必要があります。
これは正しいです。しかし、なぜ? –
Shrug。私はgccよりもclangで違う方法で実装したと思います。 –
これは動作しません! –
私のマシンで動作;)あなたのコードを投稿してください! – justin
- (IBAction)showTag __attribute __((非推奨)); 私はこれを得ます:メソッド実装の属性とその宣言は一致しなければなりません。 –