Обнаружить последний элемент при использовании NSFastEnumeration? - PullRequest
1 голос
/ 30 декабря 2010

Можно ли обнаружить последний элемент при использовании NSFastEnumeration?

for(NSString *str in someArray){

  //Can I detect if I'm up to the last string?

}

Ответы [ 3 ]

7 голосов
/ 30 декабря 2010

Можно ли обнаружить последний элемент при использовании NSFastEnumeration?

Не со 100% точностью (или путем ограничения содержимого массива полностью уникальными указателями, чтобы сравнение указателей работало какобсуждается в другом вопросе), не выполняя при этом кучу работы, которая приводит к тому, что мы просто делаем это по-старому.

Обратите внимание, что если вы можете выбрать цель 4.0+, вы можете использовать enumerateWithBlock:, которая дает и элемент, ииндекс.Это так же быстро или даже быстрее, чем быстрое перечисление.

2 голосов
/ 30 декабря 2010

Я думаю, что единственный способ - это старомодный способ, что-то вроде:

    NSUInteger count = [someArray count];
    for (NSString *str in someArray) {
         if (--count==0) {
              //this is the last element
         }
    }
0 голосов
/ 30 декабря 2010

В конце цикла "str" ​​будет по-прежнему указывать на последний элемент.Что тебе нужно сделать?

...