Я получаю сообщение об ошибке при сохранении основного контекста данных, вот журнал:
Unresolved error Error Domain=NSCocoaErrorDomain Code=134030 "The operation couldn’t be completed. (Cocoa error 134030.)" UserInfo=0x1937a0 {NSAffectedStoresErrorKey=(
"<NSSQLCore: 0x156410>"
), NSUnderlyingError=0x181a60 "The operation couldn’t be completed. (Cocoa error 4.)", NSFilePath=/var/mobile/Applications/appid/Documents/appname.sqlite}, {
NSAffectedStoresErrorKey = (
"<NSSQLCore: 0x156410>"
);
NSFilePath = "/var/mobile/Applications/appid/Documents/appname.sqlite";
NSUnderlyingError = "Error Domain=NSCocoaErrorDomain Code=4 \"The operation couldn\U2019t be completed. (Cocoa error 4.)\" UserInfo=0x181a30 {NSUnderlyingError=0x108ab0 \"The operation couldn\U2019t be completed. No such file or directory\"}";
}
Я получаю эту ошибку после удаления и удаления объекта:
[productList removeMProductObject:product];
[[delegate managedObjectContext] deleteObject:product];
[delegate saveContext];
Я также отметил, что я также получаю сообщение об ошибке для следующих сценариев (отладка):
1.
[productList removeMProductObject:product];
[delegate saveContext];
2.
[[delegate managedObjectContext] deleteObject:product];
[delegate saveContext];
3.
[[delegate managedObjectContext] deleteObject:product];
[productList removeMProductObject:product];
[delegate saveContext];
4.
[[delegate managedObjectContext] deleteObject:product];
[delegate saveContext];//error
[productList removeMProductObject:product];
[delegate saveContext];
5.
[productList removeMProductObject:product];
[delegate saveContext];//error
[[delegate managedObjectContext] deleteObject:product];
[delegate saveContext];
Иногда я могу передать либо productList
, либо объект product
( оба типа NSManagedObject
) для других контроллеров, всегда используя assign
в свойстве и никогда не сохраняя
. productList
- это объект, который может содержать множество объектов product
.
Я могу создавать новые объекты ( NSManagedObject
), но когда дело доходит до их удаления, я получаю указанную выше ошибку. При запуске приложения в симуляторе я внимательно слежу за файлом sqlite. после попытки удалить объект (код выше) я замечаю, что файл .sqlite был удален.
Я без проблем создал несколько приложений Core Data для iphone, но, похоже, здесь у меня проблема. Я не верю, что делаю что-то необычное, но, возможно, я упускаю небольшую деталь, но я не знаю что!
Почему мой файл .sqlite удаляется, и при сохранении появляется это сообщение об ошибке?
Как найти более полезное сообщение об ошибке, чтобы определить причину этой ошибки?