PFUser currentUser 未保存在 iOS7
PFUser currentUser not saving in iOS7
我正在使用下面的代码来保存当前登录的用户和自定义字段。我让用户填写信息然后保存。我使用 GCM 在我自己的线程上使用了这两种保存方法,并使用了 saveInBackgrounWithBlock。在 iOS8 上,这工作正常,但在 iOS7 上,保存永远不会发生,并且永远不会调用完成块。有任何想法吗?谢谢
if PFUser.currentUser() != nil {
PFUser.currentUser().setObject(installation, forKey: "installation")
PFUser.currentUser().saveInBackgroundWithBlock({ (bool: Bool, error: NSError?) -> Void in
if(error != nil) {
let alert = UIAlertView(title: "Problem Saving", message: "Make sure you are connecte to the internet and try again", delegate: nil, cancelButtonTitle: "OK")
alert.show();
}
})
}
更新 1: 我注意到删除应用程序可以暂时解决问题。但是,在注销并用其他用户登录后(即更改当前用户),问题会再次弹出。
更新 2: 这个问题似乎是由 PFInstallation 以某种方式引起的。使用 addUniqueObject 会导致问题。调用此方法后,任何保存都将停止工作 iOS7。即使在 PFUser 上。 PFUser 具有安装设置,反之亦然。它们的数组。
更新 3: 似乎它不仅仅是 addUniqueObject,而是 PFInstallation.currentInstallation 上的任何 setObject。求助!
您还应该检查您的第一个参数 (isSuccess):
if (bool == YES && error != nil) -> success
else -> failure
我花了很长时间才意识到,尽管我从未真正找到问题本身的解决方案,但我找到了解决方法。我将 currentUser 保存在 currentInstallation 中,将 currentInstallation 保存在 currentUser 中。这在保存时引起了问题。我还通过直接发送通道数组而不是使用 addUniqueObject 在 currentInstallation 上保存了通道。
let installation = PFInstallation.currentInstallation()
installation.channels = channels;
installation.saveInBackground()
我正在使用下面的代码来保存当前登录的用户和自定义字段。我让用户填写信息然后保存。我使用 GCM 在我自己的线程上使用了这两种保存方法,并使用了 saveInBackgrounWithBlock。在 iOS8 上,这工作正常,但在 iOS7 上,保存永远不会发生,并且永远不会调用完成块。有任何想法吗?谢谢
if PFUser.currentUser() != nil {
PFUser.currentUser().setObject(installation, forKey: "installation")
PFUser.currentUser().saveInBackgroundWithBlock({ (bool: Bool, error: NSError?) -> Void in
if(error != nil) {
let alert = UIAlertView(title: "Problem Saving", message: "Make sure you are connecte to the internet and try again", delegate: nil, cancelButtonTitle: "OK")
alert.show();
}
})
}
更新 1: 我注意到删除应用程序可以暂时解决问题。但是,在注销并用其他用户登录后(即更改当前用户),问题会再次弹出。
更新 2: 这个问题似乎是由 PFInstallation 以某种方式引起的。使用 addUniqueObject 会导致问题。调用此方法后,任何保存都将停止工作 iOS7。即使在 PFUser 上。 PFUser 具有安装设置,反之亦然。它们的数组。
更新 3: 似乎它不仅仅是 addUniqueObject,而是 PFInstallation.currentInstallation 上的任何 setObject。求助!
您还应该检查您的第一个参数 (isSuccess):
if (bool == YES && error != nil) -> success
else -> failure
我花了很长时间才意识到,尽管我从未真正找到问题本身的解决方案,但我找到了解决方法。我将 currentUser 保存在 currentInstallation 中,将 currentInstallation 保存在 currentUser 中。这在保存时引起了问题。我还通过直接发送通道数组而不是使用 addUniqueObject 在 currentInstallation 上保存了通道。
let installation = PFInstallation.currentInstallation()
installation.channels = channels;
installation.saveInBackground()