Мне нужна твоя помощь.Я написал свой собственный класс 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];
}
Все работает нормально, но у меня есть небольшая проблема.Когда эта операция вызывается, приложение не поворачивается при изменении ориентации устройства.Он меняется после завершения операции.
Насколько я знаю, эта операция точно выполняется в новом потоке (не в главном), потому что все остальные элементы в приложении активны (не заблокированы).Но у меня есть только проблема с ориентацией.Приложение выглядит дрянно, если приложение не вращается, только когда происходит эта операция ...
Как я могу решить эту проблему?
Спасибо!