2011-01-28 2 views
4

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

Вот мой код,

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 к классу человека. SO как я могу скопировать из feedDictionary в tempDictionary. Пожалуйста, помогите мне.

Спасибо.

ответ

19

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

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

Приветствие

4
[feedDictionary mutableCopy]; 

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

-1

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

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

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

[dictB setDictionary:dictA]; 

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

Смежные вопросы