iCloud — NSCoding или основные данные

У меня есть приложение, работающее с NSCoding, 3 классами, не связанными друг с другом, поэтому я использовал простой подход NSCoding для сохранения моего массива объектов.

Однако теперь вопрос iCloud. Насколько я понимаю, Core Data теперь работает с iCloud практически из коробки. Очень легко реализовать.

Чтобы помочь вам сохранить управляемые объекты в облаке, iCloud интегрирован с Core Data. Чтобы использовать Core Data с iCloud, вы просто указываете Core Data создать постоянное хранилище с поддержкой iCloud. Сервис iCloud и Core Data позаботятся обо всем остальном

Итак, вопрос в том, должен ли я преобразовать свое приложение для использования Core Data, что дает мне iCloud в основном по умолчанию, или так же легко настроить iCloud мою текущую настройку с NSCoding

Разработка на Swift для iOS 9

Спасибо


person DogCoffee    schedule 14.10.2015    source источник
comment
Насколько я понимаю, Core Data теперь работает с iCloud практически из коробки. - точно нет. Довольно сложно, если принять во внимание обновления, включение и выключение iCloud пользователями, требования к целостности данных, резервное копирование, восстановление и т. д.   -  person Duncan Groenewald    schedule 14.10.2015
comment
Должен быть лучший способ... Я попробовал Parse и местный магазин. Но и это закончилось кошмаром. Может клаудкит....   -  person DogCoffee    schedule 14.10.2015
comment
Вам не нужны Core Data для использования iCloud — вы можете сохранять файлы в iCloud без использования Core Data.   -  person Tom Harrington    schedule 14.10.2015
comment
@TomHarrington Я понимаю это, мне просто интересно, облегчит ли это жизнь.   -  person DogCoffee    schedule 15.10.2015
comment
Нет, это усложнит задачу. Если вам не нужны Core Data для чего-то другого, кроме iCloud, не добавляйте их только для того, чтобы получить поддержку iCloud.   -  person Tom Harrington    schedule 15.10.2015
comment
Ура Том, проверяю UIDocument сейчас   -  person DogCoffee    schedule 15.10.2015


Ответы (1)


Поддержка iCloud может уже хорошо работать с CoreData. Однако он так долго ломался, что я (и другие) совсем перестали им пользоваться. Я потратил так много времени, пытаясь заставить его работать, что отказываюсь тратить ни секунды, пытаясь использовать его снова.

Написав свое собственное решение для синхронизации CoreData, я, наконец, попробовал Ensembles и никогда не оглядывался назад.

Однако, если ваше приложение в настоящее время не требует CoreData, почему бы не использовать стандартную поддержку iCloud? Кажется, он отлично работает для обычной синхронизации файлов, что, по-видимому, и происходит, если вы просто сохраняете объекты в файл.

Нет необходимости усложнять CoreData, если ваше приложение прекрасно работает и без него.

person Jody Hagins    schedule 14.10.2015
comment
У меня была такая же проблема - я отказался от iCloud 2 года назад - выдавал желаемое за действительное, что это просто сработает. Я предположил, что таким образом будет слишком интенсивно использовать сеть, сохраняя весь мой граф объектов каждый раз, когда что-то меняется только в одном объекте. - person DogCoffee; 15.10.2015
comment
Если вы хотите синхронизироваться с Core Data, я твердо верю в Ensembles. У меня нет с ними никаких отношений, за исключением того, что я являюсь платным покупателем версии 2. Версия 1 по-прежнему находится в свободном доступе с открытым исходным кодом и прекрасно работает. - person Jody Hagins; 15.10.2015
comment
Проверю, Джоди. Спасибо - person DogCoffee; 15.10.2015
comment
Я получил массовую синхронизацию, работающую с UIDocument и ICloud ... затем начались проблемы, т.е. условия гонки. Я проверил Ensembles и посмотрел вступительное видео. Если бы я собирался использовать его, идентифицируйте вашу версию 2 и заплатите за нее. Как ни странно, в Интернете нет новых видео или руководств по этому сервису. Как это работает со Swift ?? - person DogCoffee; 16.10.2015
comment
У меня еще нет причин переходить на Swift, поэтому я не знаю. Я могу быть странной коровой, но мне действительно нравится ObjectiveC. Тем не менее, я предполагаю, что он работает так же хорошо, как и все другие API-интерфейсы ObjectiveC со Swift, и не должен вызывать проблем. Не стесняйтесь спрашивать разработчика. Он очень быстро реагировал на любые проблемы или вопросы, даже до того, как я дал ему свои деньги. - person Jody Hagins; 16.10.2015
comment
Я скачал книгу, и в ней упоминается, что она хорошо играет на Swift. Я был таким же... но как только я попал в Swift, мне стало больно смотреть на код Obj C. Я не сомневаюсь, что вы почувствуете то же самое. Еще раз спасибо. - person DogCoffee; 16.10.2015