我将NSString转换为NSData以便通过JSON进行解析,但是我得到了以下错误。
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '- [__NSCFDictionary dataUsingEncoding:]:
unrecognized selector sent to instance 0x7987d60'代码如下:
NSData *data = [str dataUsingEncoding:NSASCIIStringEncoding];
//NSUTF8StringEncoding also failed.
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];在我看来,这是因为str包含换行符:‘\n’。
我说的对吗?
有人能帮我解决这个问题吗?
发布于 2012-04-02 03:34:20
您的错误说明您正试图将dataUsingEncoding:allowLossyConversion:发送给NSDictionary的一个实例,该实例不知道如何处理该选择器。确保您的str对象实际上是一个字符串...
发布于 2012-04-02 02:34:31
尝试使用NSUnicodeStringEncoding而不是NSASCIIStringEncoding。因此,请替换下面这行:
NSData *data = [str dataUsingEncoding:NSASCIIStringEncoding]; 有了这个:
NSData *data = [str dataUsingEncoding:NSUnicodeStringEncoding]; 发布于 2012-04-02 03:09:13
我刚刚检查了我的样例字符串。**如果你可以给我你的字符串,那么我可以用我的以下示例代码来签出。
NSString *msg = [NSString stringWithFormat:@"tell me \"where\"\n"
"is\n"
"wrong"];
NSData *theData = [msg dataUsingEncoding:NSASCIIStringEncoding];
NSString* theString = [[NSString alloc] initWithData:theData encoding:NSASCIIStringEncoding];
BOOL isValid = [NSJSONSerialization isValidJSONObject:theString];
NSLog(@"Value %d %@",isValid, theString);对我来说,值是0,告诉我“哪里”
是
不对
https://stackoverflow.com/questions/9966953
复制相似问题