Как назначить обработчик завершения другому в Objective-C - PullRequest
0 голосов
/ 29 августа 2018

У меня проблема с обработчиком завершения.

У меня есть метод, как показано ниже

-(void)authenticationRealmWithCompletion:(void (^)(AuthenticationRealm *authenticationRealm, NSError *error))completion realmId:(NSString *)realmId postDictionary:(NSDictionary *)postDictionary{
//my code
    }

Теперь я объявил переменную, как показано ниже

typedef void(^completionHandler)(AuthenticationRealm *authenticationRealm, NSError *error);

Теперь я хочу назначить, как показано ниже

-(void)authenticationRealmWithCompletion:(void (^)(AuthenticationRealm *authenticationRealm, NSError *error))completion realmId:(NSString *)realmId postDictionary:(NSDictionary *)postDictionary{
[completion copy];

//**HERE**..... Error Line
completionHandler(completion);   

//my code



 }

Но я получаю ошибку как Redefinition of 'completion'

Пожалуйста, предложите, как назначить обработчик завершения другому.

1 Ответ

0 голосов
/ 29 августа 2018

Чтобы назначить обработчик завершения, вы должны создать свойство обработчик завершения.

@property (nonatomic, copy) completionHandler completion;

Тогда в вашем методе назначьте, используя приведенный ниже код.

self.completion = completion;

Обновление

Метод также можно определить как

-(void)authenticationRealmWithCompletion:(completionHandler)completion
                             realmId:(NSString *)realmId
                      postDictionary:(NSDictionary *)postDictionary{

self.completion = completion;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...