我有一个名为X的PFObject子类,我希望只有当我完成编辑其属性时才将其发送到云。用户可能会退出在完成编辑其属性之前的应用程序,因此X不应该被发送到云。
X包含对Y的PFRelation(多对多)(也是PFObject的子类)。 我创建了一个UIViewController,让用户可以编辑这种关系。 在viewDidLoad上我尝试从Y中获取Y:
PFQuery *yRelationQuery = [self.x.ys query];
[yRelationQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
}];
但是Parse总是抱怨"试图用一个未保存的新孩子保存一个物体。"首先,让我们首先说这个剪切不应该保存任何东西,所以我不确定为什么Parse会抱怨保存。 其次,我读得足以理解PFRelation仅适用于保存的对象。但我真的,真的不想将X发送到云端,直到用户完成它。我在这里尝试做的是当用户完成对象并按下" save"时,应该在线发送x对象。我有什么办法可以做到这一点?
非常感谢你阅读。
答案 0 :(得分:0)
也许你应该在viewWillDisappear中使用NSUserdefault,并在本地保存对象。并将保存解析按钮保存功能。
保存: NSString * valueToSave = @" someValue&#34 ;; [[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:@" preferenceName"]; [[NSUserDefaults standardUserDefaults] synchronize];
加载:
NSString * savedValue = [[NSUserDefaults standardUserDefaults] stringForKey:@" preferenceName"];
希望这有帮助! :)
答案 1 :(得分:0)
即使您的关系对象与另一个关联对象关联," parent"对象,您仍然可以单独处理它。这就是我要做的事情:
saveInBackground
块中,将Y指向它并保存Y。以下是Swift中的一个示例(抱歉,我停止使用Objective-C):
let X = PFObject(className: "X")
let Y = PFObject(className: "Y")
X["stuff"] = "value"
//Save X
X.saveInBackgroundWithBlock{ (success, error) -> Void in
if success {
Y["xRelation"] = X
//We know X is ready, so save Y now
Y.saveInBackgroundWithBlock{
//...
}
}
}