2013-09-23 2 views
0

У меня есть NSMutableDictionary внутри другой NSMutableDictionary как должен я установить значение внутри внутренней NSMutableDictionary, я попыталсяКак использовать setObject: forKey, где Key также является NSMutableDictionary?

[[PUser setObject:self.name forKey:@"profile"][@"name"]; 

, но он дает индекс требует размера interface'NSString», который не согласуется с этой архитектурой и ошибка платформы, любые предложения?

+0

Способ сделать это состоит в том, чтобы разбить его на отдельные строки, которые вы можете понять и отлаживать - получить указатель на внутренний словарь, а затем работать с этим указателем на следующей строке. (Кстати, у вашей выше строки отсутствует символ ']'. Или, может быть, более точно, у нее есть '[' it does not need.) –

+0

(Не используйте имена переменных, начиная с символов верхнего регистра. для имен классов.) –

+0

(Вы пытались '[PUser [@" name "] setObject: self.name forKey: @" profile "];'?) –

ответ

4

позволяет сказать, что ваша структура словаря, как это:

mainDictionary = { 
    "innerDictionary" = { 
     "profile":"somename", 
     "key2":"someValue", 
     "key3":"someValue" 
     } 
} 

1) Теперь, если вы хотите установить значение не для ключа «profile», который находится внутри innerDictionary, то вы можете установить его в качестве следующим образом:

[mainDictionary setValue:yourValue forKeyPath:@"innerDictionary.profile"]; 

2) если вы хотите object быть сохранены затем сделать это:

[[mainDictionary valueForKey:@"innerDictionary"] setObject:yourValue forKey:@"profile"]; 

Надеюсь, что это поможет.

1

Попробуйте с помощью следующего кода:

[[yourMainDic_Name objectForKey:@"innerDic_KeyName"] setValue:@"yourVlaue" forKey:@"KeyName"]; // you can also change as per your requirement to "setObject" instead of "setValue" 
0

Вы хотите добавить новый ключ существующего ключа затем Сначала используйте objectForKey:@"FirstKey" и Затем установите новое значение и Проточите новый ключ, что вы хотите.

[[Dic objectForKey:@"name"] setObjcet:self.name forKey:@"profile"]; 
0
NSMutableDictionary *dictmain,*dictsub; 

[dictmain setObject:dictsub forkey:@"dictsub"]; 

// Это может быть как объект словаря добавлен к другому словаря.

NSMutableDictionary *innerDict = [dictmain objectforKey:@"dictsub"]; 
[innerdict setObject:customObj [email protected]"new key"]; 

// Это добавит новый объект во внутренний словарь. Также вы можете использовать метод setValue.

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