Это зависит от того, какой тип данных вы хотите сохранить и будете ли вы использовать их только для внутреннего использования или вам придется обмениваться данными с внешней службой.
Обычно NSCoding - это сериализатор данных.Многие встроенные объекты реализуют протокол NSCoder, который позволяет вам сохранять их как двоичный поток (файл, в BLOB-объекте sqlite и т. Д.). NSKeyedArchiver дает вам плюс поиска в таких потоках на основе строковой меткинемного похоже на словарь, но вы можете использовать только строки в качестве ключей.Этот подход хорош, если вам иногда приходится сохранять некоторые объекты разных классов.
Однако, если у вас есть много объектов одного и того же класса , вам лучше пойтидля подхода к базе данных, SQLite или CoreData.CoreData - это практически оболочка для SQLite, которая значительно облегчает разработку модели данных и выполняет запросы к БД за кулисами без необходимости написания операторов SQL.В CoreData вы определяете свои классы, и каждый экземпляр класса может сохраняться, т.е. вы можете возвращать значения членов объекта, не сохраняя их всегда в памяти.Это очень удобный способ хранения большого количества структурированных данных.Например, если вы напишете веб-браузер, вы можете сохранить закладки пользователя с именем, URL-адресом и, возможно, последним посещенным временем.
Для XML и JSON нет особого преимущества, если вы используетеданные только локально на устройство.Если вам необходимо связаться с какой-либо внешней службой, вы можете кэшировать / сохранять объекты XML / JSON, как они предназначены для дальнейшего использования.Другой подход заключается в том, чтобы восстанавливать эти данные из ваших внутренних структур данных (см. Выше) каждый раз, когда вам это нужно.
Если вы разрабатываете свою модель данных самостоятельно, я вижу еще меньше смысла использовать списки, но, возможно, кто-тоисправь меня.
РЕДАКТИРОВАТЬ: я добавляю здесь ссылку на краткую ссылку для учебников о том, как использовать NSCoding , Базовые данные и, в качестве бонуса, SQLite .
ОБНОВЛЕНИЕ 12.01.2016: Если вы ищете постоянные решения, я предлагаю вам также проверить Realm .