我有一个 Meal 对象,它使用键“MealItems”存储指向 n 个创建对象“FoodInfo”的指针。

当我查询膳食时,我利用 [query includeKey:@"MealItems"] 来获取在获取“膳食”时指向的项目。

如果对象是在在线时创建的(即所有对象都存储在云数据库中),则此方法运行良好。

但是,由于我无法始终假设此应用程序可以访问云,因此我现在尝试启用本地数据存储,因此我已将查询更改为使用:
[从LocalDatastore查询];

并且我已将所有对象的保存方法更改为 pinInBackgroundWithBlock 后跟(假设本地保存成功)saveInBackgroundWithBlock 后跟(假设失败)saveEventually。

为了测试这一点,我:

  • 关闭 wifi
  • 运行代码来创建一顿饭,然后向其中添加新创建的食物。这适用于没有错误代码。
  • 运行了一份报告,然后查询刚刚创建的膳食。这失败了:

  • 错误:错误域=解析代码=121
    “包含对非 ParseObjects 无效” UserInfo=0x60800007f400 {
    error=include 对非 ParseObjects 无效,
    NSLocalizedDescription=include 对非 ParseObjects 无效,
    代码=121
    } {
    NSLocalizedDescription = "包含对非 ParseObjects 无效";
    代码 = 121;
    error = "包含对非 ParseObjects 无效";
    }

    不支持这个场景吗?

    当我重新启用wifi时,饭菜已成功添加到在线数据库中,但在本地使用includeKey运行查询时仍然发生查询失败。

    我在这里错过了什么吗?看到这种失败,我感到非常惊讶。这似乎是一个非常基本的功能,无论是本地还是基于云都应该可以使用。

    最佳答案

    在您保存它们之前,不会创建解析对象。在使用 saveEventually 之前先尝试使用 pinInBackgroundWithBlock

    关于parse-platform - 错误 : "include is invalid for non-ParseObjects" (using parse-osx-library-1. 7.5),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32343612/

    10-12 06:26