2011-08-11 144 views
2

保存我的託管對象上下文時收到一個NSValidationErrorObject。我試圖挽救了幾個對象,他們都得到同樣的錯誤(從用戶的信息):CoreData保存錯誤

NSDetailedErrors = (
    Error Domain=NSCocoaErrorDomain 
    Code=1680 "The operation couldn't be completed. (Cocoa error 1680.)" 
    UserInfo=0x5d96fb0 {NSValidationErrorObject=<Alert: 0x5bb1fb0> (entity: Alert; id: 0x5bb0600 <x-coredata:///Alert/tBA1FD03B-5157-4523-AB34-A7C05869778F12> ; 
     data: { 
     ... 
     identifier = "cap_024_0713_320117515151"; 
     ...}), 
    NSValidationErrorKey=identifier, 
    NSLocalizedDescription=The operation couldn\U2019t be completed. (Cocoa error 1680.), 
    NSValidationErrorPredicate=SELF MATCHES "", 
    NSValidationErrorValue=cap_024_0713_320117515151} 

是困惑我的事情是,我找不到任何理由爲關鍵,導致驗證錯誤。它是可選的,據我所知沒有啓用驗證。還有其他地方需要檢查驗證設置嗎?這個錯誤信息是否可以報告錯誤的字段?

identifier setup

,我現在已經進行額外的測試:每次更新後

  • 保存。不用找了。
  • 新鮮的商店。不用找了。
  • 關於保留字未提及任何警告。
  • .m文件中沒有任何手動驗證。
  • 如果我刪除「標識符」屬性,它的作品。
  • 如果我將其添加回爲「alertIdentifier」,它不起作用,但我使用了自動遷移功能,因此我將在不遷移的情況下再次嘗試。
  • 如果我刪除「標識屬性」並重新添加它,使它看起來與以前一樣,它的工作原理!
+1

你有一個存儲在數據模型中的提取? – TechZen

+0

這是一個很好的想法。沒有任何提取的屬性存儲在模型中,也沒有提取請求。 –

+0

如果你可以把它切成塊,做部分MODS,然後調用保存。你可能會對更改的內容有更多的瞭解,它不喜歡 – bshirley

回答

1

identifier可能是有問題的屬性 - 嘗試myIdentifier,看看它是否工作

(我有打電話,是因爲在OBJ - C的含義的東西description問題)

編輯,以反映的意見和結果:

一起刪除屬性,測試是否有其他故障增大,如果沒有錯誤存在,則將其添加回去。

刪除「標識符」屬性並在Xcode中再次添加它,修復了問題。這可能是由Xcode核心數據建模器錯誤引起的。

+0

不幸的是,它沒有奏效。重新命名它以測試和使用新的商店會帶來完全相同的問題。它決定做一些驗證,我不知道爲什麼! –

+0

有一些驗證方法可以實現,也許這樣做並且通過調試器進行跟蹤可能會提供一些見解? (瘋狂猜測) – bshirley

+1

'SELF MATCHES'「'部分讓你懷疑它不是可選的,並且nil,一起刪除屬性,測試是否有另一個失敗出現,然後在沒有錯誤時將其添加回去 – bshirley

1

我猜測這是一個命名衝突,由於使用「標識符」作爲屬性名稱。這類似於人們使用「description」作爲屬性名稱時出現的錯誤。

要測試,請將其更改爲其他內容並查看它是否有效。

+0

我似乎一直在引導@TechZen – bshirley

+0

我要試一試。好主意。 –

+0

不幸的是,它沒有奏效。重新命名它以測試和使用新的商店會帶來完全相同的問題。它決定做一些驗證,我不知道爲什麼! –