Подтвердить что ты не робот

Метод класса вызова в фоновом режиме с использованием Objective c

В приведенном ниже отрывке

/*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?

Если возможно, объясните! Пожалуйста, ребята вместе взятые.

4b9b3361

Ответ 1

Просто позвоните

[ClassName performSelectorInBackground:@selector(ClassMethod) withObject:nil];

Поскольку классы - это сами объекты, это будет работать.

Ответ 2

попробуйте self вместо имени класса

 [self performSelectorInBackground:@selector(methodTobeCalled) withObject:nil];

надеюсь, что эта работа будет для вас

Ответ 3

Вы должны посмотреть 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 заполнит большую часть этого для вас автоматически.