Я работаю над приложением Cocoa-Touch, оно использует CoreData и имеет несколько подклассов NSPersistentObject, сгенерированных редактором модели XCode.
Я заметил, что недавно при сохранении контекста я получаю сообщение об ошибке, содержащее следующую информацию:
(gdb) po ui {
"Dangling reference to an invalid object." = <null>;
NSAffectedObjectsErrorKey = <dump #1 of someObject>;
NSLocalizedDescription = "Operation could not be completed. (Cocoa error 1550.)";
NSValidationErrorKey = <someKey pointing to someObject #1>;
NSValidationErrorObject = <dump #2 of someOtherObject which points to the dump #1 object>;
NSValidationErrorValue = { <list of someMoreObjects> };
}
Есть другие ключи в словаре информации пользователя.
Все дампы, которые я получаю, являются действительными объектами, я их все проверил.
NSValidationErrorObject
- это объект, имеющий NSSet
, который содержит объекты типов, сброшенных в NSAffectedObjectsErrorKey
и NSValidationErrorValue
. Но все эти объекты действительны.
Кроме того, это происходит случайным образом, иногда это происходит, иногда нет, а иногда список, помещенный в NSValidationErrorValue
, длиннее, иногда короче.
Понятия не имею, почему это происходит, или в чем именно заключается ошибка. Кто-нибудь знает, что происходит? Есть идеи, что может вызвать эту причудливую ошибку?