【问题标题】:Parse object containing array elements解析包含数组元素的对象
【发布时间】:2015-06-28 10:48:44
【问题描述】:

我有一个名为 Recipes 的 Parse 对象和一个名为 ingredients 的列,它是一个数组。我想查询我的对象列表并根据我选择的一些成分检索食谱。

如果我在查询对象上使用whereKey:containsAllObjectsInArray: 消息,我将获得更多成分的食谱。另外,whereKey:containedIn: 并不能解决我的问题。检索到的对象应该有一个包含我选择的所有成分或仅其中一些成分的成分数组。它不应该比我选择的成分多。

有什么想法吗?

【问题讨论】:

  • 从逻辑的角度来看这并没有什么意义......为什么你必须指定所有成分才能获得配方?
  • 我想检索我可以使用一些成分制作的食谱(当时我家有)。我不想检索任何需要比我目前可用的更多成分的食谱。
  • 你不能只获取该成分集的所有结果,然后使用一些逻辑来过滤掉应用中含有额外成分的结果吗?

标签: ios objective-c arrays parse-platform ios8


【解决方案1】:

您可以在配方表“数组计数”中添加一个额外的列,用于记录配方中的成分数量。然后进行多重查询:

[query whereKey:ingredients containsAllObjectsInArray:ingredientsArray];
[query whereKey: arrayCount equalTo:[ingredientsArray count]];

这样,您只会退回成分数量与您列出的所有成分相同的东西。

【讨论】:

  • 太好了,是的,解析有一些奇怪的限制。通常意味着你必须想办法改变你的数据模型。很高兴我能帮上忙!
【解决方案2】:

您也许可以这样做 - whereKey:notContainedIn: 用于所有其余的 ingredients(该用户没有拥有的成分)。并且用户只会得到他拥有的ingredients

【讨论】:

  • 这将是一个有效的解决方法,但我不想通过网络发送所有成分(因为它们很多,我不希望我的应用程序徒劳地使用互联网数据)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 2023-03-22
相关资源
最近更新 更多