分類是一種為現(xiàn)有的類添加新方法的方式恋沃。
分類的局限性
一裆熙、無法向類中他添加新的實(shí)例變量
二橄镜、當(dāng)分類中的方法和現(xiàn)有方法重名偎快,發(fā)生沖突時(shí),分類優(yōu)先級(jí)別更高洽胶。分了方法完全取代初始方法晒夹。
代理是一個(gè)對象裆馒,另一個(gè)類的對象要求代理的對象執(zhí)行它的某些操作。
非正式協(xié)議
創(chuàng)建NSObject的分類丐怯,分類的實(shí)現(xiàn)可以將這些消息之一發(fā)送給任何對象喷好,無論這些對象實(shí)際上屬于哪個(gè)類,只要實(shí)現(xiàn)了委托方法读跷,任何類的對象都可以成為委托對象梗搅。
響應(yīng)選擇器
如何知道委托對象是否能夠處理發(fā)送給他的消息?
首先檢查對象效览,詢問能否響應(yīng)該選擇器无切,如果能夠響應(yīng)該選擇器,則給他發(fā)送消息丐枉。
正式協(xié)議
聲明協(xié)議使用@protocol哆键,然后是一個(gè)方法聲明列表,協(xié)議的采用者必須實(shí)現(xiàn)這些方法瘦锹,使用協(xié)議不引入新的實(shí)例變量籍嘹。
OC2.0之后的協(xié)議修飾詞
@optional ? 可選擇實(shí)現(xiàn)的方法
@required ? 必須實(shí)現(xiàn)的方法