Поиск и устранение неисправностей

При наличии затруднений, заставляя приложение работать правильно попробуйте решающие проблему подходы, описанные в этой главе.

Диагностирование проблем идентификатора объекта

Если Вы регистрируете управляемый объект ID или идентификатор объекта URIRepresentation возразите и Вы получаете нераспознанное селекторное исключение, или оно распечатывает <(null)>, проверьте, что Ваш ссылочный объект имеет тип NSString или NSNumber. Все другие типы не поддерживаются.

Диагностирование дающих сбой проблем

Если NSObjectInaccessibleException исключение повышено при доступе к свойствам на управляемом объекте, которым это могло быть по одной из следующих причин:

Если пустое к - одно отношение не может быть дано сбой в, возвратиться [NSNull null] вместо nil от newValuesForObjectWithID:withContext:error: или newValueForRelationship:forObjectWithID:withContext:error: сообщать персистентному координатору хранилища, что отношение пусто. Иначе, персистентный координатор хранилища предполагает, что произошла внутренняя ошибка.

Если пустое к - многие, в которых не может быть дано сбой отношение, Вы возвращаетесь nil в одном из двух методов выполнения отношения. Реализация к - много отношений может быть задержана до newValueForRelationship:forObjectWithID:withContext:error:. Однако, когда этот метод вызывают, отношение должно быть выполнено. Если отношение не содержит объектов, возвратите пустой массив, а не nil. Иначе, персистентный координатор хранилища предполагает, что произошла внутренняя ошибка.

Диагностирование оптимистических проблем блокировки

Если конфликты слияния не разрешаются, или политика слияния перестала работать, проверьте, что следующие части Вашей реализации корректны:

Если конфликты слияния ошибочно обнаруживаются, гарантируют постепенное увеличение номеров версий каждый раз, когда записи сохраняются.