В моем приложении Cocoa Mac есть метод, который просматривает все подписанные каналы в PubSub Client моего приложения и помечает все записи как прочитанные.
Логика выглядит примерно так ...
NSArray *feeds = [[PSClient applicationClient]feeds];
for(PSFeed *feed in feeds)
{
for(PSEntry *entry in [feed entries])
{
entry.read = NO;
}
}
Если имеется большое количество непрочитанных каналов, может потребоваться некоторое время, чтобы просмотреть их все (условно говоря).Я хотел бы, чтобы пользователь мог выполнять другие действия, такие как прокрутка статей, в то время как другие вещи происходят в фоновом режиме.Поэтому у меня есть настройка NSInvocationOperation для вызова метода, например ...
NSInvocationOperation *opr = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(markAllReadOperation) object:nil];
[que addOperation:opr];
[opr release];
Приложение все еще испытывает серьезные замедления во время работы цикла.И пользовательский интерфейс почти не отвечает.Я что-то упускаю с NSInvocationOperation или моя логика просто медленная?