2010-10-16 3 views
2

Я перечисляю словарь и проверяю на известную дату. Если точная дата (дата и время) соответствует моей известной дате, я хочу, чтобы цикл for остановил перечисление. Проблема в том, что во время проверки я выхожу из оператора if вместо цикла for.Нарушение цикла for во время перечисления (Цель C)

//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"); 
} 

Проблема заключается в том, для цикла продолжает идти, потому что только оператор IF сломан.

Как я могу реорганизовать это так, чтобы цикл for завершался?

Кстати, мне нужно проверить дату & от объекта NSDate. В документации указано, что isEqualToDate проверяет различия по второстепенным значениям, но, по-видимому, он ловит все, что есть в тот же день, не включая время.

ответ

3

Существует нет такой вещи, как вырваться из if, перерыв внутри if, если вы получите из-за. В любом случае, вы всегда можете попробовать что-то вроде [self.knownDate isEqualToDate:objectDate && break, но это не проблема, с которой вы сталкиваетесь. Чтобы убедиться, добавьте некоторые строки отладки, даже просто простую команду для печати «эй, я здесь» в блоке if.

+0

Да, вы правы! Я глупо перезапустил цикл позже в методе. – Justin

Смежные вопросы