2012-04-12 2 views
48

Я пытаюсь поместить содержимое NSDictionary в NSString для тестирования, но понятия не имею, как этого добиться. Является ли это возможным? если да, то как это сделать?конвертировать NSDictionary в NSString

Причина, по которой я это делаю, должен ли я проверить содержимое NSDictonary без отладки, запущенной на моем устройстве. поскольку я должен удалить запущенное приложение из панели многозадачности ios, чтобы я мог видеть, сохраняются ли значения, которые я сохраняю в словаре.

+0

Похожий вопрос: http://stackoverflow.com/questions/3424439/view-contents-of-nsmutabledictionary –

ответ

118

Вы можете вызвать [Описание aDictionary], или где вам нужно будет формат строки, просто использовать% @ стоять для словаря:

[NSString stringWithFormat:@"my dictionary is %@", aDictionary]; 

или

NSLog(@"My dictionary is %@", aDictionary); 
+0

ahh .. cool, да, я знаю, как зарегистрировать его, но не знал, что вы могли бы это сделать, чтобы получить его в nsstring .. cool, –

+0

плохо отметьте свой ответ, как только мне тоже позволено :) –

+0

Как я могу получить vale из NSData, которые находятся в формате JSON. –

12

Вы можете использовать метод description, унаследованный от NSDictionary от NSObject, или написать собственный метод, который форматирует NSDictionary по вашему вкусу.

+0

предоставляет некоторую дополнительную информацию, кроме фактических данных словаря. – Adeel

51

Above Solutions будет преобразовывать словарь только в строку, но вы не можете преобразовать эту строку в словарь. Для этого это лучший способ.

Преобразовать в строку

NSError * err; 
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:yourDictionary options:0 error:&err]; 
NSString * myString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
NSLog(@"%@",myString); 

Преобразование Назад в словарь

NSError * err; 
NSData *data =[myString dataUsingEncoding:NSUTF8StringEncoding]; 
NSDictionary * response; 
if(data!=nil){ 
response = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err]; 
} 
+0

Он работал для одного словаря. Что в случае нескольких словарей? Я не могу преобразовать обратно в словарь. –

+1

Не работает, если словарь имеет массивы как значения –

+0

@VineetAshtekar см. Название этого вопроса. Проблема заключается в преобразовании NSDictionary в NSString. –

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