2013-08-03 21 views
1

我正在使用核心數據的項目,我似乎無法找到足以解釋爲什麼我的程序中的以下代碼行始終返回NIL for modelURL。核心數據 - NSURL命令和momd

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"CoreDataBooks" withExtension:@"momd"]; 

這個例子是直接從蘋果的示例代碼,它實際上在他們的程序工作,但我不能讓它在我的工作。

問題:
1)在嘗試實施之前是否有某些事情需要到位?我注意到Apple解決方案有一個我沒有的「CoreDataBooks.DCBStore」文件。我嘗試了很多東西來創造這個...沒有運氣。 2)媽媽:我讀過很多關於這個的文章,看起來和「媽媽」有點不同。我知道「d」爲數據集提供了額外的功能,在這裏發佈的一些答案中,作者表示如果沒有對原因的很好解釋,就會使用「mom」而不是「momd」。同樣,這也不起作用。

一如既往,我感謝您的幫助!

格倫

+0

檢查資源名稱的拼寫。確保模型包含在您正在運行的目標包中。 – Mundi

+0

檢查了第一部分(拼寫)。沒問題。 「你的意思是」確保模型包含在你正在運行的目標包中。「 –

+1

在Xcode中選擇模型文件並檢查文件檢查器是否勾選了相關目標的複選框。 – Mundi

回答

0

所以-[NSBundle URLForResource:…]將返回nil。這應該表示所請求的資源不存在。

啓動Finder並查看包中的內容。確認該文件確實不存在。在那裏是否有一個momd文件(或類似文件),但名稱不同?可能想調整你的代碼來匹配。

如果不存在這樣的文件,則可能需要將Core Data模型添加到構建目標中。

+0

我試圖創建一個NSLog的「=」標誌右側的東西,發現一些有趣的東西。仍然不確定如何解決它,但它很有趣。它返回以下內容:/ Users/User/Library/Application Support/iPhone Simulator/6.1/Applications/1DD67211-3503-4FF2-85FE-341BFA867F7B/CoreDataBooks.app/CoreDataBooks.momd ...問題是,CoreDataBooks.app是不是目錄,而是可執行文件。對於蘋果提供的應用程序來說這是真的......非常奇怪。附:我試過Finder,但沒有找到該文件。 –

+0

不,'CoreDataBooks.app'幾乎可以肯定是一個目錄;這是一個捆綁/包裝。按住Control鍵在Finder中單擊它,然後選擇「顯示包裝內容」以查看內部 –