我有以下代码,它给出了代码后面的结果。由于某种原因,添加的对象有时会嵌入到引号中,有时它不像下面的“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 Barb 2014-03-18 14:23:56.577 EquineDiary[2343:a0b] dataArray - ( "", "Abaco Barb" ) 2014-03-18 14:24:07.333 EquineDiary[2343:a0b] breedName - Abtenauer 2014-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 horse 2014-03-18 14:25:13.695 EquineDiary[2343:a0b] dataArray - ( "", "Abaco Barb", Abtenauer, "Abyssinian horse" )
提前感谢你
答案 0 :(得分:2)
如果字符串的字符或空字符串之间有空格,则添加到数组的字符串始终具有引号。 它仅仅是在控制台中打印时显示完整字符串的表示。
使用objectAtIndex:
检索对象并传递给其他方法执行必要操作时,引号将不存在
答案 1 :(得分:2)
这里有一些事情。
info = [_breedlist objectAtIndex:i]
最后缺少一个分号。[dataArray = addObject:info.breedName];
在那里有一个额外的等号。description
变量中的dataArray
,它会在输出中添加引号,以便清楚地了解数组中实际包含的内容以进行调试。引号实际上不是存储的字符串的一部分。for
循环中,使用NSUInteger
经文int
。 [_breedlist count]
将返回NSUInteger
,因此最好与i
进行比较,比较两个相同类型的变量。要改变的另一件事是你分配初始数组的方式。
将此部分代码移至for循环之前:
if (!dataArray) {
dataArray = [[NSMutableArray alloc] init];
}
你不需要在每次迭代时检查它,你只是在没有任何好处的情况下燃烧循环。
答案 2 :(得分:1)
我可以告诉你,你要做的第一件事就是从这里删除=
[dataArray = addObject:info.breedName];