我有一个 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运行查询时仍然出现查询失败。
我在这里错过了什么吗?看到这个失败,我很惊讶。这似乎是一个非常基本的功能,无论是基于本地还是基于云都应该有效。