协议定义了一系列的方法。
id类型将类的类型隐藏起来了,可以有多个不同的实现类。只在运行期才查出些对象的实际类型
可以用协议把API之中的实现细节隐藏起来,将返回的对象设计为遵从此协议的纯id类型(也叫“匿名类型”)。这个概念就称为“匿名对象”(anonymous object)。
例:
@property(nonatomic, weak) id<EOCDelegate> delegate; // 1、用于属性
-(void)setObject:(id)object forKey:(id<NSCopying>)key; // 2、用于函数参数