gpt4 book ai didi

ios - 谁能告诉我为什么 addObject 给出不稳定的结果?

转载 作者:行者123 更新时间:2023-11-28 18:34:03 25 4
gpt4 key购买 nike

我有以下代码,它给出了代码后面的结果。由于某种原因,添加的对象有时会按应有的方式嵌入引号中,有时却不像下面的“Abtenauer”那样。谁能告诉我可能会发生什么?

相关代码:

 EQBreedInfo *info = [[EQBreedInfo alloc] init];
for (int i = 0; i < [_breedlist count]; i++)
{
if(!dataArray)
{
dataArray = [[NSMutableArray alloc] init];
}
info = [_breedlist objectAtIndex:i]
[dataArray = addObject:info.breedName];

NSLog(@"breedName - %@",info.breedName);
NSLog(@"dataArray - %@",dataArray);
}

结果:

2014-03-18 14:23:51.397 EquineDiary[2343:a0b] breedName - 2014-03-18 14:23:51.397 EquineDiary[2343:a0b] dataArray - (    "")2014-03-18 14:23:56.577 EquineDiary[2343:a0b] breedName - Abaco Barb2014-03-18 14:23:56.577 EquineDiary[2343:a0b] dataArray - (    "",    "Abaco Barb")2014-03-18 14:24:07.333 EquineDiary[2343:a0b] breedName - Abtenauer2014-03-18 14:24:07.334 EquineDiary[2343:a0b] dataArray - (    "",    "Abaco Barb",    Abtenauer)2014-03-18 14:25:13.695 EquineDiary[2343:a0b] breedName - Abyssinian horse2014-03-18 14:25:13.695 EquineDiary[2343:a0b] dataArray - (    "",    "Abaco Barb",    Abtenauer,    "Abyssinian horse")

提前致谢

最佳答案

这里有几件事。

  1. info = [_breedlist objectAtIndex:i] 末尾缺少一个分号。
  2. [dataArray = addObject:info.breedName]; 有一个额外的等号卡在那里。
  3. 您正在查看的是来自 dataArray 变量的description,它在输出中添加了引号,只是为了让您清楚地了解其中实际包含的内容用于调试目的的数组。引号实际上不是存储的字符串的一部分。
  4. for 循环中,使用 NSUInteger 而不是 int[_breedlist count] 将返回一个 NSUInteger,因此如果您与 i 的比较是比较相同类型的两个变量,则最好。<

另一件要改变的事情是分配初始数组的方式。

把这段代码移到for循环之前:

if (!dataArray) {
dataArray = [[NSMutableArray alloc] init];
}

您不需要在每次迭代时都检查它,您只是在无益地消耗周期。

关于ios - 谁能告诉我为什么 addObject 给出不稳定的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22470004/

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