Parse API有一些采用目标和选择器参数的异步方法。其中一些在选择器的签名中指定(NSError **)参数。例如,PF User类具有方法- (void)signUpInBackgroundWithTarget:(id)target selector:(SEL)selector
,并且文档指出选择器应具有此签名(void)callbackWithResult:(NSNumber *)result error:(NSError **)error
。我在实现中使用NSError对象时遇到麻烦。
在我的代码中,我这样做:
- (void)signup
{
PFUser *newUser = [PFUser user];
[newUser setUsername:@"something"];
[newUser setEmail:@"[email protected]"];
[newUser setPassword:@"12345"];
[newUser signUpInBackgroundWithTarget:self selector:@selector(signupDiDFinishWithResult:(NSNumber *)result error:(NSError **)error)];
}
- (void)signupDiDFinishWithResult:(NSNumber *)result error:(NSError **)error)
{
if (error) {
NSError *myError = *error;
NSLog(@"Error code: %d", [myError code]);
// I have also tried [*error code];
}
}
当我运行它并到达
[myError code]
行时,我得到+[NSError code]: Unrecognized selector sent to class
。我不确定这个双指针在做什么。感谢您的任何建议。 最佳答案
这可能是文档中的错字。您是否只用NSError *
尝试了?
或者,使用:
[newUser signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (error) {
NSLog(@"Error code: %d", [error code]);
}
}];
关于ios - 解析iOS API中的NSError双指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18991763/