В iOS (с использованием Xcode 4, iPad Simulator 4.3) у меня есть сущность «Article» и сущность «Author». Есть две взаимосвязи, связывающие эти две (статья имеет отношение «авторы» [необязательно, ко-многим], а у автора также есть «статьи» [необязательно, ко-многим]).
Если я начинаю с пустой базы данных (начиная с нуля, удаляя приложение из симулятора и снова нажимая отладку). Он отлично работает, я могу без проблем добавить в базу данных сотни элементов.
НО, если я сначала добавлю некоторые элементы в базу данных, а затем остановлю приложение (нажмите кнопку «Домой» или нет) и начну снова (снова нажмите кнопку отладки), данные есть, я могу «прочитать» данные нормально, и я Можно добавить данные в другие объекты в порядке. Но когда я добавляю новых авторов (а не статей), иногда печать останавливается на второй строке этой функции в моем классе "Author.m" (который является подклассом NSManagedObject):
- (void)addArticlesObject:(Article *)value {
NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1];
[self willChangeValueForKey:@"articles" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[[self primitiveValueForKey:@"articles"] addObject:value];
[self didChangeValueForKey:@"articles" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[changedObjects release];
}
БЕЗ каких-либо сообщений в консоли (вывод отладчика), и если я шагну вперед, меня отправят на __CFTypeCollectionRetain
, а затем получат EXC_BADACCESS.
Этот последний шаг не всегда один и тот же, иногда он просто не возвращается, и процессор переходит на 100% (на самом деле 50% - это двухъядерный компьютер), пока я не нажму стоп или не убью процесс "приложения" (xcode отвечает нормально) ,
Есть идеи, что происходит?