gpt4 book ai didi

iOS 应用崩溃 -[NSCFString count] : when trying to get count of NSMutableArray if count is only 1

转载 作者:行者123 更新时间:2023-11-28 22:47:17 27 4
gpt4 key购买 nike

我会保持简短和亲切,因为我确信我缺少的是一些简单的东西。我正在尝试获取一个 NSMutableArray 的计数,它可以包含可变数量的对象(id 号)。数组是从 JSon 数据创建的,数组本身是完美创建的,无论是单个对象还是一千个对象。

关于获取计数,如果数组包含 1 个以上的对象,则一切正常 & 花花公子 & 计数成功返回。但是,如果数组只有一个对象/ID 号......应用程序崩溃并显示 -[NSCFString count]: 错误。

这是我使用的代码:

[request setCompletionBlock:^(void)
{
NSString *responseCurrent = [request responseString];
NSMutableArray *json = [responseCurrent JSONValue];
NSMutableArray *currentList = [[json valueForKeyPath:@"groupTO"] valueForKeyPath:@"currentList"];

NSMutableArray *idNumArr = [[NSMutableArray alloc]init];
idNumArr = [currentList valueForKey:@"idNumber"];
debug(@"THIS IS ID ARRAY: %@",idNumArr);

debug(@"THIS IS COUNT OF THE ID ARRAY: %@",[idNumArr count]);

// Ive also tried this to get the count, with no variation in results

// int countOfidNums = [idNumArr count];
// debug(@"count of arr: %d",countOfidNums);

我需要获取此计数以实现条件,以处理当此数组仅包含单个对象时出现的其他问题。

我假设问题是由于数组中的对象是字符串,当只有一个对象时,它只是一个没有分隔逗号的字符串???或许???帮助!!!!

另外:不确定它是否有所不同,但我正在使用 ARC。

最佳答案

这里的问题是,当您到达该行时,idNumArr 不是一个数组,而是一个字符串。如果您不相信我,请在此之前打印出 [idNumArr class],或者使用调试器介入。

 NSMutableArray *idNumArr = [[NSMutableArray alloc]init];
idNumArr = [currentList valueForKey:@"idNumber"];

[currentList valueForKey:@"idNumber"] 显然返回一个字符串(并且没有理由在该分配之前立即分配数组。您可能想要:

 NSMutableArray *idNumArr = [[NSMutableArray alloc]init];
[idNumArr addObject:[currentList valueForKey:@"idNumber"]];

关于iOS 应用崩溃 -[NSCFString count] : when trying to get count of NSMutableArray if count is only 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12876238/

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