所以... 这段代码几天前就可以工作了,但我更新了我的 Parse pod,现在我在保存新创建的对象时遇到了问题。该错误告诉我找不到要更新的对象,但我什至没有尝试更新现有对象 - 我正在将其设置为新对象。
这是我的代码:
PFUser *owner = [self.item objectForKey:@"user"];
PFUser *lendee = [PFUser currentUser];
PFObject *newRequest = [PFObject objectWithClassName:@"ItemRequest"];
[newRequest setObject:owner forKey:@"owner"];
[newRequest setObject:lendee forKey:@"lendee"];
[newRequest setObject:self.item forKey:@"item"];
[newRequest saveInBackgroundWithBlock:^(BOOL succeeded, NSError * _Nullable error) {
if (error) {
NSLog(@"Error with saving: %@", error);
} else {
NSString *message = [NSString stringWithFormat:@"%@ has requested to borrow your %@", [lendee objectForKey:@"full_name"], [self.item objectForKey:@"title"]];
[PFCloud callFunctionInBackground:@"sendEmailToUserWithId"
withParameters:@{@"userId" : owner.objectId,
@"subject" : message,
@"message" : message}
block:^(id _Nullable object, NSError * _Nullable error) {
if (error) {
NSLog(@"Failed to send email with error: %@", error);
}
}];
}
}];
有什么想法吗?
几乎可以肯定,owner
或self.item
都是一个新的、未保存的对象。 使用指向这些对象的指针保存newRequest
会触发对这些对象的更新。 然后,其中一个更新失败,并显示消息"找不到要更新的对象"。
记录在newRequest
上设置的所有三个值,查找一个或多个没有 objectId 的值(这是一个很好的指标,表明它是新的)。