当我在 iOS 8.4 和 9.2 上运行以下代码时,我得到一个jsonData
808 字节的 NSData 对象:
NSData *jsonData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:urlString]];
但是,如果我将这个 NSData 对象输入到 CJSONDeserializer 中,我会在 iOS 9.2 中崩溃,但在 iOS 8.4 中会出现 NSDictionary。例如
NSDictionary *dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:nil];
注意:在崩溃的行 NSData 对象似乎发生了变化 - 例如在这里:
- (id)deserializeAsDictionary:(NSData *)inData error:(NSError **)outError
{
if ([self _setData:inData error:outError] == NO)
inData
在 iOS 8.4 中为 808 字节,但在 iOS 9.2 中如下所示:
其中,由于地址奇数,我认为这意味着对象不正确(可能被覆盖?)。
我试图在没有应用程序传输安全开销的情况下找出问题,所以我将 NSAppTransportSecurity 设置如下:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
我还将 CJSONDeserializer 更新到了最新版本。
任何其他建议可能是什么问题。