作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 NSDictionary 获取所需的数据。 NSDictionary 看起来像:
{
result = {
id = (
{
text = 1;
},
{
text = 2;
}
);
name = (
{
text = "name 1";
},
{
text = "name 2";
}
);
}
问题是 - 可以是“name”或“id”的单个元素,当它是单个元素时,就会发生错误。我正在尝试很多解决方案来修复它,其中之一:
NSDictionary * dict0=[_xmlDictionary objectForKey:@"result"];
ID =[[NSMutableArray alloc] init];
[ID addObject:[[dict0 valueForKey:@"id"] valueForKey:@"text"]];
name =[[NSMutableArray alloc] init];
[name addObject:[[dict0 valueForKey:@"name"] valueForKey:@"text"]];
当我打印 ID 和名称数组时,我看到:
ID:
(
(1,
2
)
)
名字:
(
(
"name 1",
"name 2"
)
)
但是 Xcode 显示 name.count = 1,当我尝试使用 id 和 name 实现 cellForRowAtIndexPath 时,发生错误:
[__NSArrayI length]: unrecognized selector sent to instance 0x10b102830
*** Terminating app due to uncaught exception 'NSInvalidArgumentException'
我该如何解决这个问题,让我的代码在单个元素和更多元素时都能正常工作?
最佳答案
您最初显示的数据结构看起来像是一个包含字典的外部字典,其项包含数组,而数组又包含更多字典。
从 ID 中获取文本对象的代码如下所示:
//get the dictionary at key "result"
NSDictionary result = _xmlDictionary[@"result"];
//Get the array at key "id" in result dict
NSArray the_id = result[@"id"];
//Get the object at index 0 in the array
NSDictionary objAtIndex0 = the_id[0];
//Get the object at key "text" in the dictionary
NSString *text = objAtIndex0[@"text"];
或者,全部放在一行中:
NSString *text = _xmlDictionary[@"result"][@"id"][0][@"text"];
关于ios - NSMutableArray count 说只有一个元素在里面,其实它们更多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20826538/
随着互联网在中国将近20年的发展,内容领域也从原来傻大黑粗的拼流量,进入了垂直领域的精根细作时代。我相信很多做过互联网运营的小伙伴,一定接触过内容运营,或者专职做内容运营。但是,很多自以为做了很久内
我是一名优秀的程序员,十分优秀!