2011-07-29 138 views
-1

我一直在處理這個問題近一個星期。我使用的是一個名爲restkit的框架,我一直試圖通過檢查RestKit中的代碼來進行調試。停止執行的地方是當我試圖保存到一個NSManagedObjectContext。我附上一個樣本測試項目,可以下載here。基本上重現錯誤,你必須做到以下幾點:保存時核心數據問題

  1. 運行應用程序的第一次,直到表視圖負荷
  2. 停止應用程序
  3. 運行應用程序第二次的數據,然後你會看到一個永無止境的加載微調

這基本上是卡住時,它試圖保存到管理對象方面,它位於RKManagedObjectStore.m,該方法保存(我沒放一個斷點)。我試圖確保一切正常,從模型開始,等等......但我不知道這裏發生了什麼。有人可以幫忙嗎?我在上面放置超鏈接的測試項目非常簡單...

+0

'Test.xcdatamodeld'已損壞,因爲它內沒有'element'或'layout'文件。 – TechZen

+1

你真的期望人們下載幾MB文件,建立一個項目,然後通過數千行代碼來查找你的問題?你可以做的最少的事情是發佈掛起的代碼。 – TechZen

+0

我推過我的代碼示例,現在它在github – aherlambang

回答

0

您鏈接到的項目並不是開箱即用的。

您是否嘗試過從失敗的保存中打印NSError實例。核心數據解釋遇到的錯誤非常好。幾乎太好了,因爲在這個錯誤中你可能會有很多子錯誤被忽略。

+0

它需要three20在你的圖書館,所以你需要下載一個..我不能打印錯誤,因爲它完成保存之前..它只是加載和 – aherlambang

+0

換句話說,在我調用保存到NSManagedObjectContext它只是將不會執行代碼中的下一行...它就像一個無限循環掛在那裏 – aherlambang

1

這是一個很奇怪的問題。我會看看RestKit附帶的DBDiscussionBoardExample,也許重新開始。看起來RestKit與Three20的界面中有一個無限循環。

我也覺得很奇怪,你的服務器不會用json響應,除非路徑中包含「.json」,即使頭文件需要json。

如果您在不使用Three20的情況下使用RestKit,您將節省很多頭痛。除非你的應用需要Three20出於某種原因,否則我發現它只是對代碼進行卷積。 RestKit有一個非常乾淨的界面來訪問CoreData。

也就是說,如果你喜歡,你可以把它作爲RestKit的github倉庫中的一個bug。

我必須手動添加Three20到您的項目才能加載。看完你的項目之後,我明白了爲什麼你不能真正指出導致問題的一個地方,但是你應該試圖讓那些想要幫助的人更容易 - 考慮在你的項目中包含依賴關係,或者設置一個git與子模塊的回購。

+0

埃文,欣賞的答覆..我昨天盯着DBDiscussionBoardExample一天,似乎無法找到問題以及。我已經請布萊克看看這個問題,但他也覺得這很奇怪。我實際上想在三十二點之前恢復到我的項目,但我花了大量的時間用三點20來移植我的項目。以此爲教訓,不要再使用three20。 – aherlambang

+0

您可能會在將來查看nimbus:https://github.com/jverkoey/nimbus。它意味着成爲Three20的功能替換功能,它取消了意大利麪的依賴關係,缺少文檔和測試。這也是由Joe Hewitt接管Three20的人撰寫的。它還沒有真正準備好生產,但它是保持你的眼睛。 –

+0

我實際上一直關注Nimbus一段時間..太糟糕了RestKit還沒有使用靈氣 – aherlambang