我經常需要更改NSArray
或NSDictionary
的內容。通常我這樣做:NSDictionary
- >創建NSMutableDictionary
並編輯它 - >用編輯的替換原來的NSDictionary
(作爲不可變)。可變拷貝與其他創建方法之間的區別
我知道這樣做有兩種方式:
1)使用mutable copy
和copy
:
NSDictionary *myDictionary = @{...};
NSMutableDictionary *dicToEdit = myDictionary.mutableCopy;
// Editing goes here`
myDictionary = dicToEdit.copy;
2)使用arrayWithArray:
或dictionaryWithDictionary:
NSDictionary *myDictionary = @{...};
NSMutableDictionary *dicToEdit = [NSMutableDictionary dictionaryWithDictionary:myDictionary];
// Editing goes here
myDictionary = [NSDictionary dictionaryWithDictionary:dicToEdit];
是否有這兩個之間有什麼區別方法?或者兩種方式之一有問題嗎?
它們是等價的。很可能共享相同的代碼。 'mutableCopy'是「通用」方法,適用於任何具有可變孿生的類。 –