Подкласс iOS NSOperation останавливает ротацию устройства при исполнении - PullRequest
0 голосов
/ 08 августа 2011

Мне нужна твоя помощь.Я написал свой собственный класс NSOperation под названием GetNewsOperation.Я называю это так:

GetNewsOperation *getNewsOperation = [[GetNewsOperation alloc] initWithLocalNewsCategories:self];
[loadNewsOperationQueue addOperation:getNewsOperation];
[getNewsOperation release];

В классе GetNewsOperation я реализовал init метод для инициализации и main метод для выполнения операции и возврата данных обратно в главнуюthread.

Основной метод выглядит следующим образом:

- (void)main {
    NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];

    AppSettingsController *sharedAppSettingsController = [AppSettingsController sharedAppSettingsController];

    if( [type isEqualToString:@"getCategory"] ) {
        NSMutableArray *parsedData = [[NSMutableArray alloc] initWithArray:[sharedAppSettingsController getLocalNewsCategories]];

        [newsViewController performSelectorOnMainThread:@selector(loadDataResponse:) withObject:[NSArray arrayWithObjects:parsedData, nil] waitUntilDone:NO];

        [parsedData release]; parsedData = nil;
    }

    [pool release];
}

Все работает нормально, но у меня есть небольшая проблема.Когда эта операция вызывается, приложение не поворачивается при изменении ориентации устройства.Он меняется после завершения операции.

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

Как я могу решить эту проблему?

Спасибо!

1 Ответ

0 голосов
/ 26 августа 2011

На самом деле это работает как предсказано.Я делал что-то еще в главном потоке, который блокировал приложение.

...