2011-11-22 45 views
29

在Xcode 3上有一個MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS設置,但是我在Xcode 4.2中找不到它,並且試圖將它設置爲用戶定義的構建設置,但沒有任何效果。如何在Xcode 4.2中禁用CoreData的反向關係警告?

我知道爲什麼我應該使用反向關係,但我不想因爲各種原因。

+0

我知道你說你知道爲什麼你應該使用反比關係,但我只是檢查。如果存在逆向關係,並且沒有它可以降低性能,您就會知道它簡化了CoreData。當級聯刪除?因爲建議始終保持反向關係,即使您從不使用它。當然,你可能會遇到一些特殊的用例,反過來對你不利,在這種情況下,單向關係可能是更好的選擇。 –

+0

@大衛Rönnqvist我有一個EntityA必須關係:allItems和最近最近使用。 allItems是一對多,最近最常用的是一對一和兩個都指向EntityItem。我看不出有什麼理由讓EntityItem有兩個反向關係,都指向同一個EntityA。 –

+0

我同意沒有理由我們「應該」有反向關係。我的意思是,從什麼時候開始強制每個「getChild」關係在面向對象編程中都有相應的「getParent」?順便說一句,你有沒有找到解決方案 - 我也想要它 – Rhubarb

回答

2

該設置仍然存在於Xcode 4中。至少對我來說,當我在使用Core Data的Xcode 4.2中創建一個新項目時, MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS設置位於數據模型版本編譯器(MOMC)警告集合中,該集合位於構建設置列表的底部。

+0

我找不到像數據模型版本編譯器(MOMC)警告集合,在構建設置中搜索'momc'什麼都不給我。這是因爲我沒有使用核心數據模板創建我的項目?我使用cocos2d模板來創建項目。 –

+0

我還沒有使用過cocos2d,但是您沒有使用Core Data項目模板的事實可能是您沒有Data Model Version Compiler Warnings集合的原因。另一件要檢查的是構建設置列表上方的Basic和All按鈕。確保你點擊了全部按鈕。 –

+1

我沒有點擊全部按鈕,仍然找不到,我創建了一個使用核心數據模板的新項目,它在那裏。我想這些構建設置只會出現,如果我使用核心數據模板創建我的項目。但應該有一些方法來啓用這些設置,而無需使用Core Data模板創建項目。 –

35

使用的XCode 4.3:

找到自己的方式來構建設置項目

  1. 選擇項目節點(頂級節點)導航

  2. 選擇在目標項目

  3. 選擇「Build Settings」選項卡

查找並設置MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS設置

  1. 滾動一路下跌構建設置在底部附近,找到名爲節「數據模型版本的編譯器(MOMC)警告」

  2. 的第一項是 「MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS」 和默認爲NO

  3. 更改爲YES

再次建立,警告應該消失。

34

的XCode ,和,仍然可以設置變量。

  1. 導航到構建設置

    A.選擇下Project Navigator中左側邊欄的項目。

    B.選擇「Build Settings」選項卡。

  2. 查找,並在主屏幕的左上角設置MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS

    A.選擇「全部」。

    B.通過將密鑰粘貼到搜索欄中來搜索MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS

    C.將值更改爲YES。

重新構建並且警告消失。

**** ****編輯

感謝@RajTandel的評論。如果您仍然看到警告,請重新啓動Xcode並且警告應該消失。

+1

這些步驟在Xcode 7測試版中仍然有效。 –

+0

@MattLong謝謝!我會更新答案 – mikeho

+0

@mikeho你的步驟是正確的。謝謝,但在Xcode 7.2中,即使我清理並構建它,警告依然存在。所以我必須重新啓動Xcode並且所有警告都消失了。 –