2013-06-06 40 views
0

我玩弄了很多與核心數據還很少,我是什麼樣的錯誤,你創建一個.xcdatamodeld來創建基本結構,但隨後的xcode轉換它在一個.momd文件下載.xcdatamodeld文件,並創建.momd編程

我的問題是:是否有可能做轉換程序,而不必通過它的xcode做了什麼?

比方說,比如我們wan't能夠下載從互聯網上一個xcdatamodeld文件中的iOS應用程序,並將它解釋它,並創建底層基礎。

回答

3

如果下載整個xcdatamodeld軟件包(它是一個目錄)並將其解壓縮,可以使用我的momcom項目中的代碼將其編譯爲.momd。然後您可以像加載其他數據模型一樣加載。這個項目還是有點實驗性的,但到目前爲止它在測試中表現良好。 [更新:該項目不會在iOS上正常工作,因爲它使用NSXMLDocument。如果你想試試這個,你可以使用TouchXML,它被設計成NSXMLDocument的替代品。我不知道在自己的應用程序編譯核心數據模型中的任何其他選項。]

通常的規則,規定具有數據模型和持久性存儲投其所好適用。除非您處理模型遷移,否則您不能只將新編譯的模型用於現有商店。另外,我不知道蘋果對下載新數據模型文件的應用程序會持何種態度 - 可能會很好,或者可能會讓您遇到麻煩。

+0

一個有趣的方法。可惜的是沒有內置的編譯器:'( – Redwarp

0

不,你不能從互聯網下載一個xcdatamodeld文件,並把它工作。如果你這樣做,你的程序會因爲錯誤的數據模型而崩潰。你的數據模型需要在主包中,你必須選擇當前的數據模型。核心數據維護模型版本和一些關於數據模型的信息。即使您更改模型並且不遷移模型,程序也會崩潰,您必須從設備/模擬器中刪除應用程序。

但是,您可以下載.sqlite數據庫,但數據模型應該是相同的。

+0

不是真的。雖然這不是一個好方法,但我有一個應用程序,可以從互聯網下載模型以及sqlite數據。改變模型是正常的。不過,這個應用程序很早以前就提交過(2012年,現在還在)。 –

1

您可以使用Apple的momc腳本從xcdatamodeld源創建一個momd文件。

將xcdatamodeld「source」目錄編譯到momd部署目錄中,並將xcdatamodel「source」文件編譯爲mom部署文件。

(如這裏https://developer.apple.com/library/mac/documentation/cocoa/conceptual/coredata/articles/cdUsingMOM.html解釋)

如何使用腳本:

  1. 使您要變換的xcdatamodeld文件的副本。它將被替換。
  2. 打開終端,轉到開發bin文件夾

    cd /Applications/Xcode.app/Contents/Developer/usr/bin/

  3. 運行momc腳本您xcdatamodeld文件

    用法:momc源目標

    示例(放置擴展很重要):

    ./momc input.xcdatamodeld result.momd

+0

有趣!但令人遺憾的是,我不認爲momc可以在iPhone中使用...... – Redwarp