微專業(yè)GeekBand-Objective-C筆記 -- 第二周

總結(jié):

NSSting&NSMutableString:

擁有共享機制和恒定性,只能更改指針,而不能更改對象本身在堆內(nèi)的數(shù)據(jù)。

偽更改:str1=[str1 stringByAppendingString: @"Whatever"]

等于的兩種意思:值相等 ( [str1: isEqualToString str2] )和指針相等 ( str1 == str2 )。

例子,就好像搬家,地址改變了但是房子依舊存在,每一次改變都會制造一棟新的房子,所以說這種更改并不好。

NSMutableString擁有可變性,可以直接通過 [str appendString: @"String"] 來更改

NSMutableString最好在一開始就設(shè)定好它的capacity,方法: str = [str NSMutableString stringWithCapacity : capacity]

NSString總結(jié)

NSArray&NSMutableArray

Array總結(jié)

和Array相比,還有沒有特定順序(無序)的Set,以及Dictionary,都具有常量性,他們都有Mutable的子類。

ARC 自動引用計數(shù)

協(xié)議 Protocol

協(xié)議是一個只描述外部接口,不提供實現(xiàn)(只能存在于.h文件里面)

它的里面不會包含實例變量,同時,它的@property是不會由編譯器自動產(chǎn)生一個“_名字”的實例變量的。

它可以作為聲明變量的一部分,但是不可以創(chuàng)建實例

有兩種??警告需要注意:沒有遵守協(xié)議,將一個沒有遵守協(xié)議的值賦給一個行為

可以通過 confirmsToProtocal: 來判斷是否實現(xiàn)協(xié)議

協(xié)議本身可以互相繼承,但是子協(xié)議中必須實現(xiàn)父協(xié)議

類別 Category

可以添加實例方法,可以添加類方法,可以重寫基類方法。(不需要源代碼)

不能添加屬性,實例變量和已存在的重名的方法

命名規(guī)范:“類名+擴展方法.h/.m”

擴展 Extension

需要源代碼!

可以添加屬性,實例成員,類方法,實例方法,可以改寫讀寫屬性(可以放大,但是不可以縮小,例如可以從readonly變成readwrite,但是不可以顛倒)

擴展不允許外部訪問:所以用于隱藏信息,或是用于類外不需要,但是類內(nèi)需要的成員

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容