我正在枚举字典并检查已知日期。如果确切日期(日期和时间)与我的已知日期匹配,我希望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检查亚秒级差异,但它似乎捕获了同一天的任何内容,而不包括时间。
答案 0 :(得分:3)
没有这样的东西可以打破if,打破内部if应该让你离开for。无论如何,您总是可以尝试[self.knownDate isEqualToDate:objectDate && break
之类的东西,但这不是您遇到的问题。为了确保,在那里放一些调试行,甚至只是一个简单的命令在if块中打印“嘿我在这里”。