JSON:NSString stringWithContentsOfURL ...流中有null,崩溃
Posted
技术标签:
【中文标题】JSON:NSString stringWithContentsOfURL ...流中有null,崩溃【英文标题】:JSON: NSString stringWithContentsOfURL... with null in stream, crashes 【发布时间】:2012-01-11 18:48:42 【问题描述】:环境:ios 4.3+ 使用 Xcode 4.3+
当我实现以下返回带有空值的数据的字符串时,我总是遇到 iOS/Xcode 崩溃:
[NSString stringWithContentsOfURL:myURL encoding:NSUTF8StringEncoding error:&error];
NSDictionary *myResult = (NSDictionary *)[myString JSONValue];
结果:
-[NSNull isEqualToString:]: unrecognized selector sent to instance 0x17315e8
当数据流不包含空值(大部分)时,它可以正常工作。 这是一个已知问题吗?
有什么补救措施吗?
【问题讨论】:
你可以先检查一下: NSDictionary *myResult = (NSDictionary *)[myString JSONValue];例如NSDictionary *myResult =nil; if([myString 长度]>0)myResult = (NSDictionary *)[myString JSONValue]; 您发布的代码没有意义。而且您似乎在使用图书馆时没有告诉我们是哪一个。 【参考方案1】:您还可以修复来自源的数据。在我几乎所有的 Web 服务交互中,我在查询和 SP 上使用 COALESCE 以确保输出的数据始终保持一致。
【讨论】:
这是一个有趣的想法......对于服务器(Oracle 或其他)。最好提供 CLEAN 数据。以上是关于JSON:NSString stringWithContentsOfURL ...流中有null,崩溃的主要内容,如果未能解决你的问题,请参考以下文章
将 JSON 数据的 NSString 转换为 NSArray [关闭]