objective-c <>协议

objective-c协议为不同的类提供公用的方法

协议定义了一组方法,而不提供具体实现。它定义了其它对象有责任实现的接口。当在自己的类中实现协议的方法时,用户的类就是遵守这个协议的,协议声明的方法可以被任何一个类实现。
通俗易懂地讲
你写了个类,你的这个类提供给我的类使用
我在我的类里初始化了你的类实例,那么好,你的方法我是可以调用的。
但是你的类会在达成某种条件的时候调用一个方法,这个方法你不知道要被谁实现,也无需你实现,你只是探出一个接口。
好吧,我会在按钮按下时调用这个方法,但是要做什么我不管,我也不知道,谁用的谁自己去实现。

那么,在你的类里定义协议

@protocol yourdelegate

-(void)dosomething
@end

定义id delegate属性
并在你按钮按下的方法里
  [delegate dosomething];

我的类里使用你的协议
@interface 我的类:NSObject<yourdelegate>

并且在初始化你的类的时候, 你的类.delegate = self;
然后实现你的协议方法
-(void) dosomething
{做你想做的事
}

猜你喜欢

转载自iaiai.iteye.com/blog/2113672