IOS上的核心数据关系

时间:2011-06-13 06:57:55

标签: iphone objective-c core-data

我刚刚重新设计了我的核心数据文件以利用关系,并且很难了解我如何使用这个新模型做事。

我有一个名为数据存储的实体,它与第二个实体有一对一的关系,称为test(test与数据存储有多对一的关系)。我试图找出如何存储选择测试实体中的记录。从我从我的护目镜中找到的东西我应该写 [test addDrivingConditionsObject:datastore] 这是我应该怎么做或有一种方式说 我希望[datastore addTestObject:test]。 感谢

2 个答案:

答案 0 :(得分:1)

假设从drivingConditionstest之间存在称为datastore的多对多关系,则-addDrivingConditionsObject:是正确的访问者名称。访问者需要根据关系名称而不是正在添加的对象的类型进行命名,因为可能很容易与同一类型的对象建立几种不同的关系。任何时候都是这种情况,使用对象类型会产生歧义。

答案 1 :(得分:0)

首先,说从DataStore到Test和从多对一的一对一关系是没有意义的。

最有可能DataStore能够保存对许多Test实例的引用,而Test只能有一个对DataStore实例的引用。在这种情况下,您具有从DataStore到Test的一对多关系以及从Test到DataStore的多对一​​关系。如果我错了,请纠正我。

如果我的建模正确,DataStore将包含一个名为tests的NSSet属性(可能),Test将包含一个名为dataStore的DataStore属性(可能)。

您可以设置与这些属性的关系,并且可以以任一方式完成。你可以说:

DataStore *dataStore = // get instance of DataStore
Test *test = // get instance of Test

// Possibility one - add Test to DataStore
[dataStore addTestsObject:test];

// Possibility two - add DataStore to Test
[test setDataStore:dataStore];

// ... or you can use dot notation
test.dataStore = dataStore;