преобразование NSDictionary в NSString


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

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

3 51

3 ответа:

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

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

или

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

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

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

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];
}

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