Ответ 1
Просто позвоните
[ClassName performSelectorInBackground:@selector(ClassMethod) withObject:nil];
Поскольку классы - это сами объекты, это будет работать.
В приведенном ниже отрывке
/*A ClassName with instanceMethod and ClassMethod */
-(void)instanceMethod;
+(void)ClassMethod;
/*To call a instance method in background */
ClassName class1obj = [ClassName alloc] init];
[class1obj performSelectorInBackground:@selector(instanceMethod) withObject:nil];
Аналогично, как вызвать ClassMethod в фоновом режиме с помощью performSelectorInBackground
?
Если возможно, объясните! Пожалуйста, ребята вместе взятые.
Просто позвоните
[ClassName performSelectorInBackground:@selector(ClassMethod) withObject:nil];
Поскольку классы - это сами объекты, это будет работать.
попробуйте self
вместо имени класса
[self performSelectorInBackground:@selector(methodTobeCalled) withObject:nil];
надеюсь, что эта работа будет для вас
Вы должны посмотреть GCD (Grand Central Dispatch), который решает общую проблему "Как выполнить код в фоновом режиме". Не имеет значения, вызывает ли это вызов метода класса, вызывает метод экземпляра, бросает кости, записывает в файл, что угодно.
Пример:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSLog (@"This is code running in the background");
[MyClass someClassMethod];
[myInstance someMethodWithInt:1 bool:YES string:@"some string"];
NSLog (@"Finished with the background code");
});
Работает с произвольным кодом; нет необходимости использовать селектор, нет необходимости писать методы, чтобы иметь селектор для работы в фоновом режиме, нет необходимости включать параметры в NSObject (вы не можете использовать performSelector с аргументом int или BOOL). Xcode заполнит большую часть этого для вас автоматически.