2011-09-13 19 views
25

プロトコル全体を廃止することはできますか?私はiOS SDK 5.0 Beta 7に同梱のGCCコンパイラを使用しています。プロトコル全体を非難する方法はありますか?

DEPRECATED_ATTRIBUTEは動作していません。

たとえば、次の2つのステートメントはコンパイルされません。

  • @protocol DEPRECATED_ATTRIBUTE MyProtocol
  • @protocol MyProtocol DEPRECATED_ATTRIBUTE

答えて

49

私はこれを自分で試していないが、私は、次の構文が動作するはずだと思います。

__attribute__ ((deprecated)) 
@protocol MyProtocol 
@end 

これは、インターフェイス全体を非推奨にする構文と1つの方法に似ています。

__attribute__ ((deprecated)) 
@interface MyClass 
@end 

@interface MyClass2 
- (void) method __attribute__((deprecated)); 
@end 
+0

hh。全くそれについて考えなかった。 – Hyperbole

+11

これは古いものですが、ちょうどサイドノートとして、最近のClangのバージョンでは '' '__deprecated'''を' '' __attribute__((deprecated)) ''の省略形として使うことができます。 – mszaro

+3

'__deprecated'はclangのバージョンとは関係ありません。 /usr/include/sys/cdefs.hのシステムヘッダーによって提供されます。 '__deprecated_msg("それを使っている開発者への注釈 ")を使うこともできます。コンパイラはメッセージを非推奨通知とともに表示します。 –

関連する問題