【发布时间】:2011-04-18 13:43:18
【问题描述】:
我的代码中有这个while 循环。自从我在控制台中打印了我的 i++ 以来,循环似乎工作正常。但由于某种原因,它第一次只检查我的if 语句。我只能在NSMutableArray 中添加一个名为sectionZeroTitleArray 的标题。我在这个循环中有很多数组,所以它可能会让人困惑。我会尽力解释。
这是我想要做的: 遍历数组(topicArray)的长度。如果数组的(topicArray)与另一个数组的(anotherArray)第一个对象相同,则将具有与 topicArray 相同索引(titleArray)的对象添加到新的 MutableArray(sectionZeroTitleArray)。
我确定我做了一些愚蠢的事情,也许整天没有盯着这个的人可以解决我?请和谢谢。
while (i < (topicArray.count)) {
if ([topicArray objectAtIndex:i] == [anotherArray objectAtIndex:0]) {
[sectionZeroTitleArray addObject:[titleArray objectAtIndex:i]];
}
NSLog(@"sectionZeroLoopCount: %d", i);
i++;
}
【问题讨论】:
-
在if语句前添加以下内容:
NSLog(@"topicArray value:%@, anotherArray value:%@", [topicArray objectAtIndex:1], [anotherArray objectAtIndex:0]); -
您的 topicArray 是否包含两次完全相同的对象?如果不是,那很自然,它只进入 if 括号一次。当然,你的意思不是“objectAtIndex:i”?
-
另外,存储在数组中的对象的类型是什么?通常,您想使用 isEqual: 或 isEqualToString: 而不是 ==。
-
你必须定义你所说的“是相同的”是什么意思。现在你已经写了 == 这意味着指针指向同一个对象(指针具有相同的值)。
-
伙计,你们病了,哈哈,我在 5 分钟前发布了帖子,每个人都已经有了答案。我喜欢这个社区,你们都很棒。如果可以的话,我会给你所有的复选标记。
标签: iphone arrays xcode if-statement while-loop