我将重构许多旧代码,以使客户端更加强大,能够处理不良服务器响应并在JSON响应具有无效值时记录异常。我考虑使用respondsToSelector来检查正在解析的每个节点的有效性(数据类型)。
我正在检查响应中的数据类型(int,bool等)
[[json objectForKey: @"feature_enabled"] boolValue],
如果@"feature_enabled"节点的值不是0或1,应用程序将崩溃。
为了解决这个问题,以下是我的做法:
if ([[json objectForKey: @"feature_enabled"] respondsToSelector: @selector(boolValue)]){
BOOL featureEnabled = [[json objectForKey: @"feature_enabled"] boolValue];
}else{
Log Exception
}
我没有对这段代码进行任何性能分析,但我想知道如果我打算检查每个JSON响应以解析,那么我应该期望什么样的性能损失。欢迎提供任何信息来源!