我希望一个方法可以访问在单个类中声明的方法的子集。显然,这可以通过协议来实现。
方法子集在 HouseProtocol 中声明,而类 House 实现其方法。
@protocol HouseProtocol <NSObject>
-(void) foo;
@end
.
@interface House : NSObject <HouseProtocol>
-(void) foo;
-(void) bar;
@end
在另一个类的其他地方,定义了一个采用 HouseProtocol 参数的方法:
-(void) somemethod:(id<HouseProtocol>)hp;
该方法应该使用 house 的方法,但只能使用 HouseProtocol 中可以访问的方法。意思是方法 foo 但不是方法栏。
以上是否正确,以及在 somemethod 中如何调用 foo 方法?工作代码赞赏。