Я создал приложение на основе документов, которое использует Core Data. Сначала я создал версию для Mac, и теперь, когда она работает правильно, я перехожу к созданию ее версии для iOS.
Я просто не могу понять, как максимально увеличить повторное использование кода между версиями iOS / Mac в отношении бита данных Core, поскольку они не используют одни и те же классы.
Мой класс документов, который обрабатывает сохранение, является подклассом NSPersistentDocument
. Мое намерение состоит в том, чтобы хорошо спроектированный класс модели работал в обеих средах, тем более что я не делаю так много причудливых вещей в отношении данных Core.
Теперь, когда NSPersistentDocument
недоступен в iOS, я упал. Я попытался обойти это, используя #if TARGET_OS_MAC and TARGET_OS_IPHONE
и таким образом сделав его подклассом UIManagedDocument
в версии iOS. Очевидно, это было бы удобно, но я не могу заставить это работать так. И это действительно выглядит довольно запутанным, поскольку есть много других вещей, которые также должны быть обусловлены.
Я также попытался построить классы поверх _5 _ / _ 6_, реализовав собственные перехватчики данных Core, но это также выглядит довольно запутанным, заставляя меня думать, что это неправильный путь.
Вопрос:
Мне кажется хорошей идеей повторно использовать один и тот же класс документа в версиях iOS / Mac, но, возможно, я наивен.
Как лучше всего это сделать?
Следует ли мне забыть о совместном использовании кода и создать отдельный класс документа для версии iOS, который имитирует все методы, присутствующие в версии для Mac?