gpt4 book ai didi

ios - 解析 : [Error]: object not found for update (Code: 101, 版本 : 1. 7.2)

转载 作者:行者123 更新时间:2023-11-29 02:01:44 27 4
gpt4 key购买 nike

我正在努力保存一个 PFObject:tripUIViewController 上的一个属性,它的类型是 UNTrip PFObject。我的应用程序下载了另一位用户创建的旅行。一旦我在这次旅行中更改了一个属性,然后尝试使用 saveInBackgroundWithBlock 保存它,我就收到错误“找不到对象”。我确保发送和接收用户都具有写入权限,我在 Parse 控制台中检查了这一点。我也尝试过使用公共(public)写入访问权限但无济于事,所以这显然不是问题所在。

objectId 没有被触及,所以这也不是问题。

这是控制台显示的内容:

(PFObject) Parse.PFObject = { NSObject = { isa = Unter.UNTrip } dirty = false operationSetQueue = 0x0000000171651f10 "1 value" estimatedData = 0x0000000171653290 5 key/value pairs lock = 0x00000001702157c0 hasBeenFetched = true _dataAvailability = 0x0000000171651f40 4 key/value pairs _isDeleted = false _deletingEventually = 0 serverData = 0x0000000171651a90 5 key/value pairs hashedObjectsCache = 0x00000001716524b0 2 key/value pairs updatedAt = 0x0000000170215810 2015-05-17 14:23:29 UTC createdAt = 0x0000000170215800 2015-05-17 14:23:29 UTC localId = nil objectId = 0x000000017063e860 "M4WqMOFtMn" parseClassName = "UNTrip" createdAsPointer = true _eventuallyTaskQueue = 0x000000017063dbc0 saveDelegate = nil taskQueue = 0x000000017063db40 }

UNTrip类:类 UNTrip:PFObject、PFSubclassing、可打印{

行程被用户A成功保存在云端,为用户A和B(respondingUser)设置写入权限:

  func saveTripToCloud(trip: UNTrip){
// Find user
let userQuery = PFUser.query()
userQuery?.whereKey("email", equalTo: trip.respondingUser!.email)
userQuery?.getFirstObjectInBackgroundWithBlock({ (object: PFObject?, error: NSError?) -> Void in
if let respondingUser = object as? PFUser {
println("First user: \(respondingUser.username)")
trip.ACL?.setWriteAccess(true, forUser: respondingUser)
trip.ACL?.setWriteAccess(true, forUser: PFUser.currentUser()!)

trip.saveInBackgroundWithBlock{(success: Bool, error: NSError?) -> Void in

用户 B 在收到带有 objectId 的推送后成功地从云端检索了行程(includeKey 还检索其他存储的 PFObjects):

    if let objectId = userInfo["objectId"] as? String {
var query = PFQuery(className: "UNTrip")
query.includeKey("requestingUser")
query.includeKey("respondingUser")
query.getObjectInBackgroundWithId(objectId, block: { (object: PFObject?, error: NSError?) -> Void in

然后用户 B 更改了行程中的一个属性(使用 self 因为它是在完成 block 中完成的):

self.trip?.respondingUser?.travelTime = travelTime

然后,用户 B 无法通过以下方式尝试将行程保存回云端:

trip?.saveInBackgroundWithBlock({ (succes:Bool, error: NSError?) -> Void in

成功:false,错误:找不到对象

有人可以解释一下吗?

最佳答案

呼,终于解决这个问题了。

当用户 B 收到行程时,它会更改属性 trip.respondingUser.travelTimerespondingUser 是用户 A 创建的另一个 PFObject 子类实例。在将它发送到用户 B 通过包含这行代码:trip.respondingUser?.ACL?.setWriteAccess(true, forUser: respondingUser) 其中 respondingUser 是引用用户 B 的 PFUser 实例,接收行程的用户。

问题已解决,感谢查看。

关于ios - 解析 : [Error]: object not found for update (Code: 101, 版本 : 1. 7.2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30288163/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com