2015-01-16 28 views
1

當模型文件從項目移動到項目時,我經常遇到崩潰。任何想法爲什麼?如果我從Xcode創建它,並手動創建實體,它不會發生。爲什麼?加載模型文件時發生崩潰。模型從其他項目複製

lazy var managedObjectModel: NSManagedObjectModel = { 
     // The managed object model for the application. This property is not optional. It is a fatal error for the application not to be able to find and load its model. 
let modelURL = NSBundle.mainBundle().URLForResource("Model", withExtension: "momd")! 
return NSManagedObjectModel(contentsOfURL: modelURL)! 
}() 

enter image description here

UPDATE

的文件擴展名不是momd,但xcdatamodel。但這應該不是問題。與Model和同名的透氣項目正在工作。

文件添加到目標: enter image description here

,並在控制檯中,您可以看到它是在正確的地方存在: enter image description here

回答

0

我發現this但它不能正常工作。順便說它是編譯錯誤。我刪除了模型文件,添加了一個新的空模型與以前的命名,但現在從Xcode。然後手動編輯模型文件,並插入相關的xml標籤。

0

,你崩潰嘗試加載一個名爲Model.momd從文件中的行如果該文件不存在,則應用程序捆綁並引發異常(「意外發現零,同時展開可選值」)

您要麼

  • 使用了錯誤的文件名,也就是你的模型文件存在,但卻不是Model.momd,或
  • 使用正確的文件名,但忘記包括在應用程序的目標該模型文件,當你將它添加到新的項目。意思是說,這個文件存在於你的Xcode項目中,但你沒有告訴Xcode在構建應用程序時實際包含它。

您可以通過在文件瀏覽器(在你的情況Model.xcdatamodel)選擇未編譯模型文件在Xcode的窗口的左側,然後查看右側的文件檢查器中,根據第二可能性勾選「目標會員「。確保目標應用程序檢查:

Xcode target membership

+0

你的兩個條件都滿足,但仍然崩潰。奇怪。 –

+0

然後,出於某種其他原因,該模型不存在於應用程序包中。也許你正在複製一份破損的副本,並且出於某種原因編譯失敗。 –