Поскольку у меня есть требование добавить подобные объекты в массив, я создал новый словарь таким образом.Изменение содержимого нового словаря также изменяет данные родительского словаря
NSMutableDictionary* existingStepDict = [[[arrayForSteps objectAtIndex:0] mutableCopy] autorelease];
[arrayForSteps addObject:existingStepDict];
[existingStepDict release];
Теперь, что происходит здесь в том, что позже, когда я что-то изменить в любой из словаря, другой также обновляется. Я требую, чтобы оба этих словаря действовали независимо.
Для этого я прошел через Deep-copy словарей, код которых подобен этому.
NSMutableDictionary* existingStepDict = [[[arrayForSteps objectAtIndex:0] mutableCopy] autorelease];
NSMutableDictionary* destination = [NSMutableDictionary dictionaryWithCapacity:0];
NSDictionary *deepCopy = [[NSDictionary alloc] initWithDictionary:existingStepDict copyItems: YES];
if (deepCopy) {
[destination addEntriesFromDictionary: deepCopy];
[deepCopy release];
}
//add Properties array to Steps Dictionary
[arrayForSteps addObject:destination];
Но это тоже не отражало разницу. Я знаю, что делаю здесь небольшую ошибку. Но может ли кто-нибудь помочь мне получить мой результат?
Большое спасибо!
Я редактирую свой предыдущий ответ, чтобы включить другой вариант – tkanzakic