Книга: iOS. Приемы программирования
Решение
Решение
Создавайте операции и запускайте их вручную:
@interface AppDelegate ()
@property (nonatomic, strong) NSInvocationOperation *simpleOperation;
@end
Реализация делегата приложения такова:
— (void) simpleOperationEntry:(id)paramObject{
NSLog(@"Parameter Object = %@", paramObject);
NSLog(@"Main Thread = %@", [NSThread mainThread]);
NSLog(@"Current Thread = %@", [NSThread currentThread]);
}
— (BOOL) application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
NSNumber *simpleObject = [NSNumber numberWithInteger:123];
self.simpleOperation = [[NSInvocationOperation alloc]
initWithTarget: self
selector:@selector(simpleOperationEntry:)
object: simpleObject];
[self.simpleOperation start];
self.window = [[UIWindow alloc] initWithFrame:
[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
Вывод этой программы (в окне консоли) будет примерно таким:
Parameter Object = 123
Main Thread = <NSThread: 0x68 10280>{name = (null), num = 1}
Current Thread = <NSThread: 0x68 10280>{name = (null), num = 1}
Из имени данного класса (NSInvocationOperation) понятно[6], что основное применение объекта такого типа связано с активизацией метода в объекте. Это наиболее непосредственный способ активизации метода в объекте с помощью операций.
- 4.14. Запрет и разрешение хостов
- Решение проблем при работе в Почте Windows
- Решение проблем при работе Проигрывателя Windows Media
- Общее решение
- Разрешение трассировки с помощью ‹trace›
- Более приемлемое решение
- Разрешение конфликтов имен
- Запрещение и разрешение прерываний
- Правила творческой лени
- Основные параметры ЭЛТ-мониторов
- Выстройте структуру
- См. также