我在解析时使用匿名用户,如果没有保存,我会发出网络调用来保存它们。保存用户的代码如下
PFUser* current = [PFUser currentUser];
if (!current.objectId) {
// The user is newly created, don't run any queries for them until they are saved.
[current saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
// We need a saved user to do stuff.
if (!succeeded) {
NSLog(@"Error saving user: %@", error);
} else {
NSLog(@"Saved anonymous user");
// ... load data
}
}];
return;
}
如果我在没有互联网连接的模拟器中运行它,则保存失败(显然),但是成功是真的并且错误是零,所以即使用户没有保存,我的代码也会加载数据。实际上,错误会记录在日志中,但不会在回调中返回:
错误:错误 Domain = NSURLErrorDomain Code = -1009"显示Internet连接 离线。"的UserInfo = 0x17aa1220 {NSErrorFailingURLStringKey = https://api.parse.com/2/user_signup_or_login, NSErrorFailingURLKey = https://api.parse.com/2/user_signup_or_login, NSLocalizedDescription = Internet连接似乎处于脱机状态。 NSUnderlyingError = 0x1792c880" Internet连接似乎是 离线。"}(代码:100,版本:1.2.20)
这是Parse API中的错误还是我没有正确使用?
答案 0 :(得分:0)
仅检查succeeded
标志是不够的,您还应该检查error
。
如果您只是要检查其中一个,请检查错误。
以下是我将使用的模式:
if (succeeded && !error) {
// success!
} else {
// uh oh :(
}
答案 1 :(得分:0)
您可以使用检查连接的else
来处理kPFErrorConnectionFailed
块中的错误。
实施例
else {
if(error.code == kPFErrorConnectionFailed)
{
// handle error
}
}
答案 2 :(得分:0)
这是一个已在最新版本的解析中修复的错误。