在枚举期间打破for循环(目标C)

时间:2010-10-16 23:43:05

标签: iphone objective-c xcode nsdate

我正在枚举字典并检查已知日期。如果确切日期(日期和时间)与我的已知日期匹配,我希望for循环停止枚举。我遇到的问题是,在检查期间,我打破了if语句而不是for循环。

//known date has already been applied to self.knownDate
for (id object in array) {
    NSDate *objectDate = object.date;
    if ([self.knownDate isEqualToDate:objectDate]) {
        break;
    }
    NSLog(@"date didn't match, move on to next entry");
}

问题是,for循环继续,因为只有IF语句被破坏。

如何重构这个以便for循环退出?

顺便说一下,我需要检查日期和时间。来自NSDate对象的时间。文档说isEqualToDate检查亚秒级差异,但它似乎捕获了同一天的任何内容,而不包括时间。

1 个答案:

答案 0 :(得分:3)

没有这样的东西可以打破if,打破内部if应该让你离开for。无论如何,您总是可以尝试[self.knownDate isEqualToDate:objectDate && break之类的东西,但这不是您遇到的问题。为了确保,在那里放一些调试行,甚至只是一个简单的命令在if块中打印“嘿我在这里”。