gpt4 book ai didi

objective-c - 索引到数组字典时出现无法识别的选择器错误

转载 作者:行者123 更新时间:2023-11-29 13:24:37 25 4
gpt4 key购买 nike

我有一个导致 __NSCFDictionary objectAtIndex: 错误的数组字典。

谁能告诉我为什么?字典显然在错误发生时至少有 1 个数组。

 NSError *error;
responseString = [[NSString alloc] initWithData:self.responseData2 encoding:NSUTF8StringEncoding];

/* response string contains this:
{"words":
{
"word": {"rowsreturned":0,"id":"-1","date":"","word":"","term":"","definition":"","updated_on":""}
},
"status":"",
"rowsreturned":""
}
*/

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:self.responseData2 options:kNilOptions error:&error];

NSArray *todaysWord = [[json objectForKey:@"words"] objectForKey:@"word"];

//error here -[__NSCFDictionary objectAtIndex:]: unrecognized selector sent to instance
NSDictionary *word = [todaysWord objectAtIndex:0];

最佳答案

在您的情况下 [[json objectForKey:@"words"] objectForKey:@"word"]; 返回字典而不是数组。尝试执行以下操作,

id wordParam = [[json objectForKey:@"words"] objectForKey:@"word"];

if ([wordParam isKindOfClass:[NSArray class]]) {
NSDictionary *word = [(NSArray *)wordParam objectAtIndex:0];
} else if ([wordParam isKindOfClass:[NSDictionary class]]) {
NSDictionary *word = (NSDictionary *)wordParam;
} else {
NSLog(@"error. %@ is not an array or dictionary", wordParam);
}

您的响应字符串还显示 word 的值是,

{"rowsreturned":0,"id":"-1","date":"","word":"","term":"","definition":"","updated_on":""}

这是一个字典,其键值对为 rowsreturned:0id:-1 等。

关于objective-c - 索引到数组字典时出现无法识别的选择器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13464433/

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