0

プロトコルのすべての実装者に読み取り専用プロパティを実装するように強制しようとしています。これは私の試みです:

@protocol Foo
@property(readonly) BOOL isPending;
@end

@interface Bar <Foo>
@end

@implementation Bar
- (BOOL) isPending {
    return NO;
}
@end

プロトコルファイルに警告が表示されるのはなぜですか?

プロパティ「isPending」では、メソッド「isPending」を定義する必要があります

それはプロトコルです!プロトコルは機能を実装することを想定されていません!プロトコルを実装するクラスは関数を実装する必要があります。これはまさに私が行ったことです。

4

1 に答える 1

1

Xcode4.3.2で報告している問題を再現できません。実装するものを宣言したFooが、それにゲッターを追加することを怠った可能性はありますisPendingか?診断は- (BOOL) isPending、の代わりにプロトコルに追加して、@property違いがあるかどうかを確認することです。完全に宣言されたゲッターとセッターでもドット構文を使用できるため、プログラムの他の部分と構文上の違いが生じることはありません。

于 2012-04-07T00:14:31.703 に答える