Как мы узнаем, когда перечисление закончено? Документы говорят: возвращаемое значениеКогда заканчивается NSEnumerator?
nextObject
nil, когда все объекты были перечислены. Я надеялся реализовать некоторые «делегат типа» поведение, посредством которой ...
if (nextObject == nil) {
do something because we're done!
}
Но я вижу, что нет такого понятия, как:
enumerationDidFinish:
, где в следующем блоке я мог проверить для перечислитель должен быть полным?
NSArray *anArray = // ... ;
NSEnumerator *enumerator = [anArray objectEnumerator];
id object;
while ((object = [enumerator nextObject])) {
// do something with object...
}
yep ... просто базовая вещь, которую я забыл. Это то, что происходит, когда вы просто используете какао-вызовы безостановочно и забываете основы цикла! –
В частности, Эдвард имеет это право - при назначении -nextObject для 'object', цикл while вычисляет, по существу,« пока есть следующий объект, выполните следующие действия: ». –