2015-08-20 4 views
0

У меня есть этот NSMutableDictionary, и когда я пытаюсь запустить эту функцию, чтобы добавить данные, она вылетает, возвращая JSON, если есть символы, которые не являются буквами (ПРИМЕР будет, если строка (Hello World) пробел между двумя словами приведет к сбою), если я не заменю их символами подчеркивания, как показано ниже. Как заставить его принять любого персонажа?NSMutableDictionary не принимает определенные символы

NSMutableDictionary * dict = [[NSMutableDictionary alloc] init]; 

NSString *name = [[NSString alloc] initWithUTF8String:msg]; 
      // If the dictionary has any of these characters within it, code breaks. 
NSString *prodNameWithUnderscores = [name stringByReplacingOccurrencesOfString:@" " withString:@"_"]; 
NSString *prodNameWithUnderscores2 = [prodNameWithUnderscores stringByReplacingOccurrencesOfString:@"'" withString:@"_"]; 
NSString *prodNameWithUnderscores3 = [prodNameWithUnderscores2 stringByReplacingOccurrencesOfString:@"(" withString:@"_"]; 
NSString *prodNameWithUnderscores4 = [prodNameWithUnderscores3 stringByReplacingOccurrencesOfString:@")" withString:@"_"]; 
NSString *prodNameWithUnderscores5 = [prodNameWithUnderscores4 stringByReplacingOccurrencesOfString:@"~" withString:@"_"]; 

NSData *data = [name dataUsingEncoding:NSUTF8StringEncoding]; 
dict = [NSPropertyListSerialization propertyListWithData:data options:kNilOptions format:NULL error:NULL];**strong text** 
return @{ @"name": dict }; 
+0

Вы можете выводить сообщение, которое вы получаете со своим крахом? –

+0

*** Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: «*** - [__ NSPlaceholderDictionary initWithObjects: forKeys: count:]: попытка вставить нулевой объект из объектов [0] ' – WakkaDroid

ответ

0

Я понял, мне не нужно было сериализовать встроенный конвертер JSON. Я просто прошел обычную строку.

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