自定義的代理是有格式的
1咆畏、首先是明確誰是委托方露该,要在委托方里面定義代理。
? ? ?格式是委托方的類名字加上Delegate。
? ? ?例如:@protocolCarviewDelegate?
? ? 然后定義協(xié)議的方法 寫的第一個(gè)參數(shù)要把委托方作為一個(gè)參數(shù)傳遞到這個(gè)方法中
? ? 例如:@required
? ? ? ? ? ? ? -(void)carview:(Carview*)view andWith:(Type)type;
2、接著在委托方的聲明一個(gè)屬性用來遵守協(xié)議(注意:這里的屬性盡量用id類型躬贡,這樣就 ? ? ? ? ? ? ?可以隨便一個(gè)代理方都能遵守協(xié)議,能達(dá)到解偶的作用)用一般都用delegate; 這里用weak是為了防止相互指向引用造成死循環(huán)
? ? ? 例如:@property(nonatomic,weak)id delegate;
3、代理方只需要遵守協(xié)議然后將引入委托方實(shí)現(xiàn)協(xié)議內(nèi)容就可以了
? ? ?先將委托方引入代理方里面诵冒,然后創(chuàng)建出委托方,把代理方賦值到委托方里的delegate ? 屬性中谊惭。然后實(shí)現(xiàn)代理方法就行了
4汽馋、 代理的方法是在委托方中用賦好值的代理方調(diào)用的
? ? ? ?例如:[self.delegatecarview:selfandWith:bt.tag];