2011-07-08 19 views
0

私のiOSのプロジェクトでは、私は「のXMLElement」という名前のプロトコルを作成し、私は私のプロトコルのインスタンスを返す必要があり、このプロトコルの方法に問題があります:プロトコル方式の自己参照

@protocol XMLElement <NSObject> 
-(XMLElement *) GetParent; 
@end 

方法GetParentは、XMLElementプロトコルの実装である親要素を返します。

しかし、これはコンパイルされません!

返品する必要がありますidオブジェクトですか?他に方法はありません ?あなたが問題に関連していない

@protocol XMLElement <NSObject> 
-(id <XMLElement>) GetParent; 
@end 

を必要とするので、

答えて

2

のXMLElementは、プロトコルである:メソッド名は大文字で始まる持っている非定型です。 GetParentではなく、getParentである必要があります。あなたが書く必要があるので、

+0

おかげで、素晴らしい答え! – TheFrancisOne

1

プロトコルは、それ自身のタイプではありません。コメントを

- (id<XMLElement>) getParent; 

(私はあなたが慣習に固執すると小文字を持つメソッドを開始をお勧めします)

+0

お返事ありがとうございます! – TheFrancisOne

+1

また、 'get'を省略することをお勧めします。 –