CoreData Не работает на iOS8

Рейтинг: 0Ответов: 1Опубликовано: 25.09.2014

Привет коллеги. Вот я и столкнулся с проблемкой, которая заставляет меня переехать с CoreData на что-то более умное и надежное.
Вопрос такой: как мне быстро мигрировать на другую ОРМку, более надежную, и сильно не потеть? Если что, проект еще только готовится к релизу, и можно все переделать :) И вообще, стоит ли дергаться, ведь, может быть, Apple пофиксит багу где-нибудь к iOS9?

p.s. Есть желание форкнуть iActiveRecords :) интересно знать, вопрос с многопоточностью решался или нет у @AlexDenisov.

Сама проблема, с которой я встретился и провел доскональный ресерч, тут.

2014-09-26 14:41:37.418 TestCoreData[412:61215] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '"CDSession" is not a subclass of NSManagedObject.'

Ответы

▲ 2Принят

Magical Record не очень-то боеспособна, я написал свою либу для работы с CoreData, отлично справляется, единственное, NSManagedObjects нельзя генерить в swift, иначе все очень плохо. В целом никаких проблем с CoreData в iOS 8 я не нашел. Если интересно, могу кинуть свою либу, для fetches я взял за основу Magical Record, остальное переписал, потому что проблемы с ней были еще на iOS 5, тогда-то я и не выдержал.

В принципе никуда переходить с Core Data не советую, а в iOS 8 появились довольно интересные фичи, например, background fetching.

Посмотрел твой тестовый проект, нашел, в чем проблема:

Класс CDSession уже есть в системном фреймворке CoreDuet, посмотри, он на это и ругается! У меня уже было один раз так, у меня был класс EKEvent в CoreData - в такой же ситуации оказался. Решается простым переименованием класса, я переименовал сейчас твой класс в CDMSession, и все стало норм на девайсе.