Как скопировать значения NSMutableDictionary в другой NSMutableDictionary в iPhone? - PullRequest
4 голосов
/ 28 января 2011

Я хочу скопировать значения NSMUtableDictionary в другой NSMutableDictioary.Как я могу это сделать?

Вот мой код:

 PersonClass.h file:

 NSMutableDictionary *tempDictionary;
 @property (nonatomic, retain) NSMutableDictionary *tempDictionary;

 PersonClass.m
 @synthesize tempDictionary; 

 tempDictionary = [[NSMutableDictionary alloc] init];

-(PersonClass *) initWithPerson:(NSMutableDictionary *) feedDictionary
{
     // get all the values in feedDictionary.

     //Now i want copy of the details from feedDictionary into the tempDictionary

           tempDictionary = feedDictionary; // Doesn't copy.
}

Я хочу получить доступ к значениям tempDictionary класса person.Так как я могу скопировать из feedDictionary в tempDictionary.Пожалуйста, помогите мне.

Спасибо.

Ответы [ 4 ]

19 голосов
/ 28 января 2011

Как насчет этого?

tempDictionary = [[NSMutableDictionary alloc]initWithDictionary:feedDictionary];

Приветствия

5 голосов
/ 28 января 2011
[feedDictionary mutableCopy];

Это скопирует все записи в словаре, но не скопирует пользовательские объекты, если вы не реализуете протокол NSCopying.

0 голосов
/ 07 сентября 2012

Вот еще один способ сэкономить. Предположим, вы скопировали изменяемый словарь с именем «dictA» в новый изменяемый словарь с именем «dictB». но убедитесь, что dictB имеет alloc и init.

[dictB setDictionary:dictA];

Надеюсь, что это полезно.

0 голосов
/ 13 июля 2012

очень простой способ получить глубоко изменяемую копию словаря - использовать JSON.Это также дает возможность взглянуть на значения в словарях

NSString *dictStr = [sourceMutableDict JSONRepresentation];
// NSLog(@"copied data dict: %@", dictStr);
copyMutableDict = [[dictStr JSONValue] retain];
...