0

カテゴリにプロトコルを採用させようとしていますが、単純なことのように見える問題が発生しています。

インターフェイス宣言は次のとおりです。

@interface UIView (UIViewCategory) <DesiredProtocol> 

そして、私は実装宣言が同じであるべきだと仮定していました:

@implementation UIView (UIViewCategory) <DesiredProtocol> 

しかし、これはXCodeで黄色の警告を受け取り、「'id'のないプロトコル修飾子は古風です」というメッセージが表示されます。

したがって、宣言は次のようになります。

@implementation UIView (UIViewCategory) id<DesiredProtocol> 

??

この特定の問題のリファレンスが見つかりません。すべての返信に感謝します。

4

2 に答える 2

2

カテゴリであるかどうかに関係なく、@implementationブロックのプロトコルリストは必要ありません。

@implementation UIView (UIViewCategory)
...
@end
于 2012-08-16T17:20:13.347 に答える
0

これはあなたがプロトコルを宣言する方法です

@protocol ProtocolName <NSObject>

//protocol methods

@end

後でそれは財産です

@interface ProtocolClass: NSObject
{...}
@end 
@property (nonatomic, unsafe_unretained) id <ProtocolName> delegate;
//Synthesize it!

そして、あなたはそれを採用します

@interface ClassThatAdoptsProtocol: NSObject <ProtocolName>{...}
于 2012-08-16T17:02:38.880 に答える