Parse iOS API中的NSError双指针

时间:2013-09-24 20:49:32

标签: ios objective-c parse-platform

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:@"test@test.com"];
    [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。我不确定这个双指针我做错了什么。谢谢你的任何建议。

1 个答案:

答案 0 :(得分:3)

这可能是文档中的拼写错误。你刚刚用NSError *尝试了吗?

或者,使用:

[newUser signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (error) {
        NSLog(@"Error code: %d", [error code]);
    }
}];