2016-11-29 38 views
5

我只是用Core Data創建了一個演示項目。NSManagedObject子類中的重複符號錯誤

我在我的數據模型中創建了一個實體Userinfo。現在我創建了一個NSManagedObject這個實體的子類。

Xcode自動生成這4個類。

enter image description here

現在,當我生成項目,它拋出這個錯誤:

enter image description here

我所做的一切,我知道刪除duplicacy但沒有任何的錯誤幫助。

我認爲它是一個Xcode錯誤。請幫忙。

+0

這裏是更短,更簡單的解決方案。 [This is](https://stackoverflow.com/a/14449080/8551309) –

+0

[Here is](https://stackoverflow.com/a/14449080/8551309)對我來說更簡單更簡單的解決方案。 –

回答

9

您正在生成Xcode已爲您生成的文件,從而獲取重複的聲明。有關此功能的詳細信息(Xcode 8中的新增功能)可在this WWDC video中找到。

兩個可能的解決方法:

1)使用Xcode中產生ManagedObject子類(建議的,現代的方法)

  • 從項目中刪除所有生成的NSManagedObject子類,如果存在。
  • 設置CodegenClass Definition.xcdatamodel的所有實體
  • 確保Module是空的( 「全球命名空間」 中的淺灰色)(解決辦法蘋果的bug,請參閱this answer

注:

決不自動生成的文件添加到您的項目。即使你沒有看到你的項目中生成的文件,Xcode有一個引用,所以你可以寫擴展等。例如:

extension MyEntity { 
    func doSomething() { 
     // 
    } 
} 

此外,你可以命令+點擊Xcode中生成的文件。

2)觸發子一代手動(相當偏執,但子彈證明的做法,忽視了新的Xcode功能)

  • 刪除所有生成的NSManagedObject子類在你的項目,如果存在。
  • 設置CodegenManual/None.xcdatamodel的所有實體
  • 清潔工程
  • Clean DerivedData folder
  • 重新啓動的Xcode
  • 手動生成NSManagedObject子類(在 「編輯」 菜單)
  • 確保這些文件被添加到您的項目
  • build
+0

這些文件在哪裏生成?因爲我需要這些課程來達到我的目的。 – iPeter

+1

導出數據。不要將它們添加到您的項目中。如果你按照這個答案工作,Xcode會自動引用它。您也可以編寫擴展aso。如果您遇到問題,請描述您遇到的問題。我會盡力幫助。 – shallowThought

+0

非常感謝。 :) – iPeter