我在完成处理程序中遇到问题。
我有以下方法
-(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'
请建议如何将完成处理程序分配给另一个。
答案 0 :(得分:3)
要分配完成处理程序,您必须创建属性 完成处理程序。
@property (nonatomic, copy) completionHandler completion;
然后在您的方法中使用以下代码进行分配。
self.completion = completion;
更新
方法也应定义为
-(void)authenticationRealmWithCompletion:(completionHandler)completion
realmId:(NSString *)realmId
postDictionary:(NSDictionary *)postDictionary{
self.completion = completion;
}