У меня есть класс, который наследуется от NSObject. Он использует NSMutableArray для хранения дочерних объектов, например. Люди, использующие элементы NSMutableArray * для хранения объектов Person. Как реализовать NSFastEnumerator на элементах?Реализация NSFastEnumeration в пользовательском классе
Я попытался следующие, но он является недействительным:
@interface People : NSObject <NSFastEnumeration>
{
NSMutableArray *items;
}
@implementation ...
- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)len
{
if(state->state == 0)
{
state->mutationsPtr = (unsigned long *)self;
state->itemsPtr = items;
state->state = [items count];
return count;
}
else
return 0;
}
Что это, что вы пытаетесь сделать? Если вы просто используете [подсчет массива], вы можете получить счет уже, если вы хотите получить количество определенных типов объектов в массиве, которые вы должны использовать для (id-объекта в массиве) <=, который является быстрым перечислением –
У меня есть экземпляр на моем классе «Люди» в моем делете приложения, скажем, я хочу, чтобы это было возможно: для (Person * p in People) { NSLog (p); } – user593733