在CoreData中存储半边结构

时间:2011-11-11 10:12:33

标签: objective-c core-data

我正在构建一个使用Half-Edge structure来存储2D三角形网格的应用。

每次用户点击屏幕并添加一个点时,都会计算网格。

我希望能够将网格保存到CoreData中。不仅仅是点,而是整个网格,因此在恢复时不必再次重新计算)

我的HalfEdge结构是这样的(绘图由一组三角形组成):

Triangle:
    - firstHalfEdge (actually, any half-edge of the triangle)
HalfEdge:
    - lastVertex (the Vertex in which the Edge ends)
    - next (next halfedge in the triangle)
    - oposite (the halfedge oposite to this one, which is in another triangle)
    - triangle (the triangle which this edge belongs to)
Vertex:
    - halfEdge (the edge which the vertex belongs to)
    - point (2d coordinates of the vertex)

这是我的CoreData方案: enter image description here

正如您所看到的,我向HalfEdge添加了一个先前的属性(尽管不需要),以避免收到非反向关系的警告。

但我不停地收到更多警告:

  • Vertex.point应该有反转。 (这个没问题,我只想添加另一个属性)
  • Vertex.halfEdge应该有反转。 (这指的是此顶点为第一个顶点的HalfEdge,因此lastVertex不会反向执行)
  • HalfEdge.lastVertex应该有反转。 (见上文)
  • HalfEdge.triangle应该有反转。 (Triangle.firstHalfEdge仅指一条边,任何边,但所有3条边都应指三角形)Triangle.firstHalfEdge应该有一个反转。 (见上文)

那么,我该怎么办?我是否应该尝试完成那些反向关系(但是,我认为它会使我的结构计算更复杂)或者我应该忽略这些警告?

顺便说一下,如果有人好奇,这就是我正在做的事:http://www.youtube.com/watch?v=c2Eg7DXW7-A&feature=feedu

1 个答案:

答案 0 :(得分:1)

您可以通过在项目配置编辑器(Xcode 4.1中的“数据模型版本编译器 - 警告”类别)中将MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS设置为YES(screenshot)来禁用警告。

在此之前,还有things to consider