每次使用它時,我都會報告壹些問題,例如為什麽會出現這種情況,這種變化有什麽好處,以及它對編碼會有什麽樣的幫助。
創建壹個對象,它的內存空間的大小是由我們決定的,而這個內存空間的大小實際上是由alloc決定的。但是alloc聲明壹個新的內存空間並初始化大小;初始化內存空間後,內存的大小和值不能隨便更改。
如果我們需要在其他時候改變這個對象的內存地址呢?
在Objective-C中,提出了可變對象的概念。可變對象占用的內存大小和數據不僅在alloc初始化時確定,而且在其他時候也可以自行更改。
理解清楚概念後,基礎框架中提供了哪幾種變量類型?
確切地說,所有具有NSMutable的類型都可以去看看它們是否是可變類型。
常見的變量類型:NSMutableArray、NSMutableDictionary、NSMutableString、NSMutableAttributedString、NSMutableSet等。我就不壹壹舉例了,會在Xcode中自動補上。
分析
當我們使用不可變集合時,我們可以這樣理解它嗎:
C的形式,可以用順序表,鏈表,數組創建嗎?
猜壹個場景。在拍賣會上,數組、鏈表和序列表需要介紹各自的特點供客戶選擇:
不可變:因為順序表和鏈表都是數據結構,所以pass選擇壹個數組。
變量:需要增刪查,所以數組pass,鏈表,順序表各有優劣,OC會根據時空復雜度進行切換(很可能,只是猜測,錯了請不要打我)。
IOS深層和淺層復制NSString,NSMutableString(1)
IOS深層和淺層拷貝NSArray和NSMutableArray(2)
iOS的那些奇妙的東西深深淺淺的復制(3)