4

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

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

如果对象是在线创建的(即,所有对象都存储在云数据库中),这将非常有效。

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

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

为了测试这一点,我:

  • 关闭无线网络
  • 运行代码来创建一顿饭,然后向其中添加新创建的食物。这适用于没有错误代码。
  • 运行了一个报告,然后查询刚刚创建的餐点。这失败了,原因如下:
错误:错误域=解析代码=121
“包含对非 ParseObjects 无效” UserInfo=0x60800007f400 {
    error=include 对非 ParseObjects 无效,
    NSLocalizedDescription=include 对非 ParseObjects 无效,
    代码=121
} {
    NSLocalizedDescription = "包含对非 ParseObjects 无效";
    代码 = 121;
    error = "包含对非 ParseObjects 无效";
}

不支持这种情况吗?

当我重新启用wifi时,餐点成功添加到在线数据库,但是当我在本地使用includeKey运行查询时仍然出现查询失败。

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

4

1 回答 1

0

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

于 2015-09-02T09:23:27.087 回答