總結(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]

NSArray&NSMutableArray

和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)需要的成員