在我的iOS项目中,我创建了一个名为“XMLElement”的协议,我对这个协议的方法有一个问题,它必须返回我的协议实例:
@protocol XMLElement <NSObject>
-(XMLElement *) GetParent;
@end
方法 GetParent 返回父元素,即XMLElement协议实现。
但这不能编译!
我必须要返回 id 对象吗?别无他法?
答案 0 :(得分:2)
XMLElement是一个协议,所以你需要
@protocol XMLElement <NSObject>
-(id <XMLElement>) GetParent;
@end
与问题无关:方法名称以大写字母开头是不典型的。它应该是getParent
而不是GetParent
。
答案 1 :(得分:1)
协议不是它自己的类型,所以你需要写:
- (id<XMLElement>) getParent;
(我建议你坚持约定并用小写字母开始方法)