为什么会出现错误:
NSString *jsonString = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"jsonRoster unmasked: %@", jsonString);
NSString *maskedString = [self maskJSON:jsonString withMultipleElementStartString:@"###multipleElementsBegin###" andMultipleEndString:@"###multipleElementsEnd###" andSingleElementStartString:@"###elementBegin###" andSingleElementEndString:@"###elementEnd###"];
NSLog(@"jsonRoster masked: %@", maskedString);
这是错误:
由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'-[__ NSDictionaryI stringByReplacingOccurrencesOfString:withString:]:无法识别 选择器发送到实例0x600002932400'
但是为什么字符串仍然是字典?
答案 0 :(得分:2)
根据错误消息JSONObjectWithData
返回了一个NSDictionary
对象,实际上实际上是这样,JSONObjectWithData
根据您的JSON结构返回一个字典或一个数组。因此,通常应检查返回类型并正确处理它。
修改
要获取NSString
,可以使用其initWithData:encoding:
方法。