作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在开发一个与 Rest 网络服务对话的应用程序。我使用的 JSon 解析器是 SBJson。服务器端有这个web服务返回一个beanA。这个 bean 包含一个 beanB。当有多个bean时,我从服务器端得到的部分Json是这样的:
BeanB =
(
{
key = 12;
name = test2bbb;
},
{
key = 11;
name = test2ttt;
}
);
当只有一个bean时,它看起来像这样:
BeanB =
{
key = 10;
name = test3;
};
通过SBJson解析器,当返回的BeanB只有一个时得到的是一个字典,当返回的BeanB多于一个时得到的是一个数组。我用来接收 bean 的代码是:
NSArray/NSDictionary *BeanB = [BeanADic objectForKey:@"beanB"];
问题是我无法预测我将从服务器端获得什么。有没有办法测试返回类型?
最佳答案
这种情况适合检查返回值的类。
id beanB = [beanADic objectForKey:@"tagBeans"];
if ([beanB isKindOfClass:[NSDictionary class]]) {
NSDictionary *beanDic = beanB;
...
关于objective-c - 如何在 Objective-c 中测试方法的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8362683/
我是一名优秀的程序员,十分优秀!