2011-11-11 46 views
0

我正在構建一個應用程序,該應用程序使用Half-Edge structure來存儲二維三角形的網格。在CoreData中存儲半邊結構

每當用戶點擊屏幕並添加一個點時,就會計算網格。

我希望能夠將網格保存到CoreData中。不只是點,但整個網格,這樣就不必重新計算一次恢復時)

我半邊結構像這樣(圖紙是由一組三角形組成):

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

正如你可以看到我添加了一個前面的屬性半邊(但也沒必要),以避免受到警告的非反比關係。

但我不斷收到更多的警告:

  • 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

您可以通過在項目配置編輯器(分類「數據模型版本的編譯器 - 警告」設置MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS禁用警告在Xcode 4.1)改爲YES(screenshot)。

不過,在這樣做之前還有things to consider

+0

我知道有些事情要考慮。我認爲禁用警告就像關閉汽車裏閃爍的引擎燈。可能不是一個好主意。 – Odrakir

+0

在任何情況下*有*情況時,沒有反向關係是最好的選擇。對於我的情況(我被同樣的警告所困擾)反向並沒有任何意義。可能是一個糟糕的設計,但我想不出一個更好的設計。 – zrxq