Вопрос

При разработке моего первого серьезного приложения для iPhone (это означает, что я бы хотел получить его в AppStore), мне нужен был хороший способ представить мои данные. Вместо того, чтобы использовать основные данные, я (глупо, я думаю) решил использовать классы для представления моих данных.

Я создал три класса, MMDOT, Mmshowmovement и Mmshow. Mmshowmovement содержит экземпляры класса MMDOT в массиве, так как MMShow содержит экземпляры Mmshowmovement. Звучал как хороший способ сделать это, у каждого класса есть много логики, которая должна идти с ней, поэтому я подумал, что классы казались хорошим способом представлять все эти данные.

Мой вопрос: есть ли простой способ сохранить экземпляры этих классов, чтобы я мог восстановить данные после повторного открытия приложения? Я сделал приложения на OS X, используя nskeyedarchiver, будет ли он похож на iPhone? Будет ли легче начать снова использовать основные данные (эти объекты очень сложны, особенно MMDOT с примерно 15 переменными экземпляра, теперь, когда я смотрю на них, может быть, не так сложно)?

Я действительно в недоумении здесь.

Это было полезно?

Решение

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

Другие советы

Если у вас есть много экземпляров объектов, вам, вероятно, лучше использовать основные данные - это поможет кэшировать вещи, помочь вам с запросами, чтобы получить конкретные наборы объектов и так далее. Кино -картин действительно намного полезно, если вы сохраняете несколько экземпляров, но у вас есть несколько недостатков - в частности, труднее отслеживать утечки памяти от Unarchived Objects.

Основные данные также могут сделать для вас подкидку результатов, так что вы не получаете содержимое предприятия большого массива, если вам это не нужно.

Я изучал сериализацию своих занятий на днях и пошел с использованием nsuserdefaults. Я просто даю всем внутренним объектам уникальный ключ на основе объекта. Казалось, работал быстро для меня.

Написал здесь блог об этом: http://technolojiadev.blogspot.com/2009/12/serialize-this.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top