我有一個NSArrayController子類,它設置一個新插入的對象的實例變量,並防止用戶刪除它,如果此變量爲零。防止刪除核心數據NSManagedObject
我想在一個實體子類中做到這一點。在awakeFromInsert方法中設置變量是可能的。有沒有一種辦法,以防止刪除,排序的:
if (self.testVariable == 0) return; ?
我沒有找到它,但也許我錯過了什麼。
我有一個NSArrayController子類,它設置一個新插入的對象的實例變量,並防止用戶刪除它,如果此變量爲零。防止刪除核心數據NSManagedObject
我想在一個實體子類中做到這一點。在awakeFromInsert方法中設置變量是可能的。有沒有一種辦法,以防止刪除,排序的:
if (self.testVariable == 0) return; ?
我沒有找到它,但也許我錯過了什麼。
在NSManagedObject實現此:
- (BOOL)validateForDelete:(NSError **)error
根據一些測試,我相信validateForDelete
將無法正常工作,防止刪除,因爲所需。
validateForDelete
用於執行添加驗證之前刪除。本質上,方法名稱是誤導性的。例如,對於
此外,prepareForDelete
之前被調用並將刪除任何Cascade
關係,並標記null任何Nullify
的關係。因此,必須「退出」。或者改變你的數據模型,只允許Deny
這些將在prepareForDelete中單獨留下這些關係。這是一個僵硬的反手應用到你的商業模式和邏輯。
此外,Deny
關係在用戶保存數據時被「拒絕」 - 這對用戶來說可能太遲了,無法恢復和糾正這種情況。
我相信最好的選擇是禁用綁定到控制器中的canRemove
方法的移除按鈕。
是的,您的實現必須反映你的情況 – mprivat
你的意思是:(BOOL)validateForDelete:(!self.testVariable = 0)(NSError **)錯誤{ 回報; } ?? – berfis