Очевидно случайные сбои при переносе хранилища Core Data - PullRequest
2 голосов
/ 28 октября 2009

Я пытаюсь перенести хранилище Core Data SQLite в приложение Mac OS X Leopard. Сама миграция проста, есть только пара изменений между версиями модели, и есть один пользовательский NSEntityMigrationPolicy, который немного манипулирует строками.

99% времени, это работает отлично. Однако иногда происходит сбой при EXC_BAD_ACCESS в objc_assign_strongCast при migrateStoreFromURL: type: options: withMappingModel: toDestinationURL: destinationType: destinationOptions: error:.

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

Кикер в том, что если я просто пытаюсь перенести тот же файл снова , он обычно работает нормально. Я не знаю, с чего начать отладку, поэтому любые указатели будут приветствоваться!

Ответы [ 2 ]

2 голосов
/ 04 ноября 2009

После разговора с DTS выясняется, что является ошибкой в ​​Core Data в Mac OS X 10.6.

Обходной путь: убедитесь, что вы не передаете ошибку nil в migrateStoreFromURL: type: options: withMappingModel: toDestinationURL: destinationType: destinationOptions: error:. Это должно быть разрешено, но в этом случае это вызывает сбой.

0 голосов
/ 03 ноября 2009

Две вещи:

  1. Используйте инструменты, предоставляемые Apple (а именно, Инструменты), чтобы отследить проблему управления памятью.Это может быть где-то в вашем собственном коде.
  2. Попробуйте свести это к простому, воспроизводимому случаю и сообщите об ошибке в Apple. *

Я заметил многовозникали проблемы, связанные с «автоматической» миграцией, которые дали мне серьезную паузу.Единственный способ решить их - убедиться, что Apple знает о каждом из них.

...