使用iOS SDK本地数据存储查询解析平台-错误代码102

问题描述

我有一个类(CompEntry),它带有指向其他2个类的指针(用户-认Parse类和Competition)。

如果我使用whereKey等于远程Parse服务器中的特定Competition ObjectId来查询CompEntry,它将返回[PFObject]数组的预期结果。

我想将该数据脱机到iOS Local Datastore,所以我将其固定在后台

此数据的后续查询应来自本地数据存储,并添加以下一行:

ArmSegment

这会导致错误(模拟器控制台-最后一行是打印语句):

2020-09-17 10:08:22.991233 + 0100 Parse-2 [69334:2219916]-[PFObject 长度]:无法识别的选择器已发送到实例0x60000304efa0

获取错误错误域=解析代码= 102“-[PFObject长度]: 无法识别的选择器已发送到实例0x60000304efa0“ UserInfo = {错误=-[PFObject长度]:无法识别的选择器发送到 实例0x60000304efa0,NSLocalizedDescription =-[PFObject长度]: 无法识别的选择器已发送到实例0x60000304efa0,代码= 102}

返回的对象数:无

哪个来自我的完成处理程序的错误处理部分-唯一执行的部分。

我的代码是:

query.fromLocalDatastore()

找到模拟器的本地工作目录,我在sqlite浏览器中打开了ParSEOfflinestore文件。当前包含我期望的所有对象:

Screencapture of SQLPro for SQLite,Mac app

此后,我一直手动确保将相关对象(用户和竞赛)固定到它们自己的离散函数中以进行查询和固定。该数据在上面的屏幕截图中,显示未更改。

遵循的过程是:

  1. 在模拟器上的第一个运行时,在代码中注释let query = PFQuery(className: "CompEntry") query.whereKey("CompID",contains: "someObjectId") // COMP OBJECTID STRING query.includeKeys(["UserID","CompID"]) // FIELD headingS OF POINTER COLUMNS query.fromLocalDatastore() // COMMENTED OUT 1ST RUNTIME,TO GET REMOTE DATA AND PIN. THEN RE-RUN WITH THIS LINE ACTIVE query.findobjectsInBackground { (objects,error) in if let error = error { print("Get Error: \(error)") } print("Returned object count: \(objects?.count)") if let objects = objects { // THIS BLOCK IS COMMENTED OUT AFTER INITIAL PINNING (1ST RUNTIME) PFObject.pinAll(inBackground: objects,withName: name) { (success,error) in if success { print("Pinned all objects") } if error != nil { print("Pinning error: \(error)") } } } } 调用
  2. 运行填充本地数据存储区的查询
  3. 使用sqlite浏览器验证本地数据存储
  4. 停止应用
  5. 从步骤1中的代码删除注释,因此它现在使用本地数据存储
  6. 注释pinAll()块调用,因为它不需要重新固定
  7. 在模拟器上重新运行应用程序
  8. 发生错误消息,并且查询返回的对象为nil

我在另一个没有指针的类上运行了完全不同的查询,将其固定,然后从本地数据存储中重新运行查询,该查询可以正常工作。

错误原因是什么?而我该如何解决呢?

非常感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)