解析:在PFObject上创建一对一关系,支持多种类型?

时间:2015-05-14 17:16:05

标签: ios objective-c parse-platform

我正在尝试在Parse中创建一个PFObject子类,它与Parse中的另一个PFObject有一对一的关系,但我希望这个关系支持任何PFObject子类。目前,只要我创建并保存我的第一个PFObject到Parse,PFObject连接到的任何东西都被设置为该关系的唯一接受类型,并且创建连接到该关系的不同PFObject子类的第二个对象会产生错误

有没有办法......

  • 指定一对一关系(即实际指针)应连接到的所需类?如果是这样,它是否支持连接到指定类的子类?
  • 轻松创建一对一关系,支持任何类型的PFObject?

示例:

例如,假设我需要创建一个名为Zookeeper的PFObject的子类,除了PFObject的多个子类,适用于各种类型的动物:ArmadilloBear,{{1等等(由于我们必须接受的原因,每只动物必须拥有自己的PFObject子类,而不是使用通用的Camel类)。

然后让我们说每个Zookeeper只负责一只动物。为此,我想在名为Animal的{​​{1}}上创建一对一关系,以便我可以指定每个Zookeeper负责的单个动物对象。

我创建了多个Zookeeper和多个动物。我成功保存了我的第一只动物(animal)和我的第一个Zookeeper物体(“爱丽丝”)和我的第二只动物(Armadillo),但是当我试图保存我的第二只Zookeeper时{1}}对象(“Bill”)到Parse,我收到以下错误:

Bear

2 个答案:

答案 0 :(得分:1)

我不确定这是不是你想要的,但是你可以:

  1. 在Parse中创建一个Animal子类,其中包含一个名为&#34的文本字段;键入",并为每种不同类型的动物创建一列(是的,我知道这不是&n;优雅的)。

  2. 匹配"类型"的列column包含指向特定动物对象的指针,而其他列为nil。

  3. 要获取特定的动物对象,您需要获取Animal对象,查看类型列,然后查看相应的指针列以获取特定的动物对象。

  4. 例如,Zookeeper对象包含指向Animal对象的指针。 "类型" Animal对象的列包含文本" bear"。然后在"熊"中检索对象。 Animal对象的列,它是一个Bear对象。这符合您的规格吗?是的,有一个动物对象,但仍有像熊等特定动物对象的概念。

答案 1 :(得分:0)

我最终做的是将所需目标对象的类名和对象ID保存到我的对象,而不是将其保存为指针;因此,在上面的示例中,这意味着在animalType上创建属性animalIDZookeeper,并使用这些属性通过objectId = animalID查询相关动物。这样我就不必创建任何纯粹关系的新类型。