類目:
??? 定義:為現(xiàn)有工程中的類和系統(tǒng)類添加新的方法
??? 作用:在類目中添加新的方法及屬性和在原類中添加方法和屬性是一樣的,都能夠用被類和類的子類調(diào)用,這樣可以快速便利維護(hù)和開(kāi)發(fā)項(xiàng)目.
類目的使用場(chǎng)景
??? 1.類包含了很多方法實(shí)現(xiàn),而這些方法需要不同團(tuán)隊(duì)成員來(lái)實(shí)現(xiàn)
??? 2.當(dāng)你在使用基礎(chǔ)類庫(kù)中的類時(shí),你不想繼承這些類而指向添加一些方法時(shí)
使用類目的時(shí)候需要注意的問(wèn)題
??? 1.類目可以訪問(wèn)原始類的實(shí)例變量,但不能添加實(shí)例變量,如果想添加變量,那就通過(guò)繼承創(chuàng)建子類來(lái)實(shí)現(xiàn)
??? 2.類目可以重載原始類的方法,但不推薦這么做,這樣會(huì)覆蓋掉原始類的方法,如果確實(shí)要重載,那就通過(guò)繼承創(chuàng)建子類來(lái)實(shí)現(xiàn)
??? 3.和普通接口有所區(qū)別的是,在類目的實(shí)現(xiàn)文件中的實(shí)例方法只要你不去用它你就可以不用實(shí)現(xiàn)所有聲明的所有方法
非正式協(xié)議:NSObject的類目聲明成為非正式協(xié)議.創(chuàng)建一個(gè)NSObject的類目而不實(shí)現(xiàn)成為"創(chuàng)建一個(gè)非正式協(xié)議"
創(chuàng)建一個(gè)類目?
???? 1.創(chuàng)建一個(gè) Objective-C File 文件? (File Type 設(shè)置為:Category)?? (繼承 Class:改為繼承的那個(gè)類)
???? 2.然后到 .h 文件聲明個(gè)方法
???? 3.然后到 .m 文件實(shí)現(xiàn)該方法
???? 4.最后到 ViewController.m 文件中調(diào)用該方法就可以了
延展
延展的作用就是定義自己的私有方法
創(chuàng)建一個(gè)延展
??? 1.創(chuàng)建一個(gè) Objective-C File 文件 (File Type 設(shè)置為:Extension) (繼承 Class:改為要延展的那個(gè)文件名)
??? 2.然后聲明一個(gè)延展方法
??? 3.延展方法 只能在繼承的那個(gè)文件調(diào)用和使用