gpt4 book ai didi

ios - NSMutableArray count 说只有一个元素在里面,其实它们更多

转载 作者:行者123 更新时间:2023-11-28 22:19:14 30 4
gpt4 key购买 nike

我正在尝试从 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/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com