你看上面写了是protocol
 id <EveryFrameDelegate>这个就表明遵循了这个协议
这是oc语法规定

解决方案 »

  1.   

    oc的语法 
    协议只能去实现,不能作为一个具体类型。所以不能使用 
    @property (nonatomic, assign) EveryFrameDelegate delegate; 
    来声明。而需要使用
    @property (nonatomic, assign) id<EveryFrameDelegate> delegate; 
    表明,这个delegate是一个需要实现EveryFrameDelegate协议的对象。我们在一个类中如果要实现某个协议会像如下这样:
    @interface viewController:UIViewController <EveryFrameDelegate>
    @end还有一点注意的地方就是将协议声明为属性时的修饰。不应使用retain ,而是assign. 表示它们之间是一个弱引用的关系。避免直接在类中包含另一个类的指针引用(强引用),增加藕合度。