aga*_*ian -1 json casting objective-c ios
我有一个身份验证例程,它从服务器API检索加密的JSON文档以进行验证例程.
一旦json消息被解密,它就被解析为NSDictionary.
从iOS 8.1.1开始(而不是之前),我们有一些设备,其中以下解析为YES,而在其他设备中,它解析为NO.
BOOL isValid = (BOOL)[resp objectForKey : @"IsValid"];
Run Code Online (Sandbox Code Playgroud)
json字典中IsValid属性的值是{ IsValid: "1" }
到目前为止它一直运行良好,因为iOS 6,但iOS 8.1.1在某些设备上打破了这个.
我需要了解为什么会发生这种情况,以及设备上是否有任何可能导致此问题的内容.
这有什么理由以及在设备上修复它的方法吗?出于多种原因,我不想要发布新版本.
令我感到惊讶的是,演员阵容已按预期工作:将对象转换为BOOL导致比较指针nil,并返回YES所有非零值.换句话说,浇铸将产生YES一个值是否存在,无论是@0或@1,和NO如果该值丢失.
要根据值进行转换,请使用以下boolValue方法NSNumber:
BOOL isValid = [[resp objectForKey : @"IsValid"] boolValue];
Run Code Online (Sandbox Code Playgroud)