b/w NSArray
和NSMutableArray
有什麼區別?NSArray和NSMutableArray的區別
回答
NSMutableArray
(以及名稱中包含Mutable
的所有其他類)都可以修改。因此,如果您創建一個普通的NSArray
,則以後無法更改其內容(無需重新創建它)。但是如果你創建了NSMutableArray
,你可以改變它 - 你會注意到它有方法-addObject:
和-insertObject:atIndex:
。詳情請參閱the documentation。
「可變」類型是可在初始化後更改的類,如NSMutableString
vs NSString
。
'NSMutableString'源自'NSString'。因此,你不能依靠從外部接收的「NSString *」來保持不變。你只能假設'NSMutableString *'是可變的。 'NSString *'可以是可變的或不可變的。這就是爲什麼當實例被分配給類中的某個屬性時,您可能需要調用'[str copy]'。 –
構建完成後,您無法更改NSString。見http://stackoverflow.com/questions/905396/the-final-word-on-nsstrings-mutable-and-immutable。至於你爲什麼使用副本,請參閱http://stackoverflow.com/questions/387959/nsstring-property-copy-or-retain –
毛茸茸的:你不能改變'NSString'類的*實例*。這不是問題。問題是「'NSString *'」不一定指向'NSString'類的實例。它也可以指向從'NSString'派生的類的實例,如'NSMutableString'。因此,你不能依靠你從外部接收到的'NSString *'是不可變的。 –
NSArray:在NSArray中,我們無法更改索引.... 意味着修復數組。
的NSMutableArray:在NSMutableArray裏,我們可以改變指數,也是在運行時數組添加值..
- 1. 用於NSArray和NSMutableArray的CFType?
- 2. 處理的NSArray和NSMutableArray裏
- 3. 用NSArray和NSMutableArray填充NSStackView
- 4. CFArray和NSArray之間的區別
- 5. NSArray和CCArray之間的區別
- 6. CFMutableArray和NSMutableArray之間的區別?
- 7. NSMutableArray沒有響應NSArray類別
- 8. NSArray排序NSMutableArray
- 9. NSArray到NSMutableArray
- 10. 拉NSArray從NSMutableArray
- 11. setValue:forKey:和setObject:forKey:for NSMutableArray有什麼區別?
- 12. 的NSMutableArray NSArray的和初始化
- 13. 的NSMutableArray和NSArray的斯威夫特
- 14. NSArray的搜索和添加到NSMutableArray的
- 15. 排序和NSArray分組到新的NSMutablearray
- 16. 什麼是NSMutableArray和NSArray的C#equivelant?
- 17. NSArray VS. NSMutableArray問題
- 18. 從NSMutableArray製作NSArray
- 19. NSMutableArray到NSArray排序
- 20. 添加NSArray到NSMutableArray
- 21. NSMutableArray到NSArray錯誤
- 22. NSMutableArray或NSArray結構
- 23. 來自NSArray的NSMutableArrays的NSMutableArray
- 24. 的NSMutableArray到一個NSArray Parse.com
- 25. NSArray atomfeed和類別
- 26. 這兩個NSArray之間的區別
- 27. 在NSArray中存儲NSMutableArray?
- 28. 排序/篩選NSArray/NSMutableArray
- 29. 無法識別的選擇器發送到實例NSArray/NSMutableArray
- 30. 使用ARC時,[[NSArray alloc] init]和「autorelased」[NSArray array]之間是否有區別?
善待......我們都必須從某個地方開始,而文檔可以是非常神祕的新人。 – kmiklas