2012-05-17 6 views
0

Какие еще способы, кроме NSUserDefaults, сохранить и вернуть пользовательские объекты? Для меня NSUserDefaults стал слишком большим количеством хлопот (он не сохраняется правильно), поэтому я ищу другой способ сохранить данные, которые будут работать. (Я уже опубликовал свои проблемы, и я просто хочу искать другие способы сохранения данных)Способы сохранения данных без NSUserDefaults

EDIT: Мне также нужно иметь возможность сохранять такие вещи, как UIIMages и UIButtons.

ответ

1
  1. Вы можете сохранить данные как обычно text файл или plist файл.
  2. Для того, чтобы сохранить данные, Вы можете использовать SQLLite.

Помимо этого, если вы используете приложение, управляемое сервером, то вы можете сохранять свои данные на сервере и возвращаться, когда вам это нужно.

+0

Как сделать/работать с (например) UIImages? – ManOx

+0

@ManOx - изображения, которые вы можете сохранить в комплекте приложений. – rishi

+0

Спасибо! также ответ Джеффри Томаса хорош. – ManOx

0

Вы можете использовать plist или coreData.As вы использовали NSUserDefaults, это значит, что данные довольно малы, поэтому plist будет хорошей идеей. Оба из них настолько эффективны. Если данные становятся действительно большими, вы можете использовать sqlite.

1

UIImages следует сохранять, создавая PNG или JPEG-представление, а затем записывая, что NSData блокируется, как вы сочтете нужным. См. UIImagePNGRepresentation.

UIButtons следует сериализовать/десериализовать по протоколу NSCoding. Архивы могут позаботиться об этом для вас.

NSData и UIButtons поддерживают NSCoding, поэтому я бы рекомендовал архивировать вместо NSUserDefaults. См. NSCoding для начала этой кроличьей лунки.

0

Чтобы сохранить пользовательские объекты, вам необходимо убедиться, что пользовательские объекты реализовали протокол NSCoding. Вот документ от Apple по адресу NSCoding.. Если вам нужен учебник о том, как реализовать протокол NSCoding, проверьте this site. Чтобы сохранить UIImage в файл, вы можете преобразовать изображение в NSData, а затем с помощью метода writeToFile NSData для записи в файл. Существует множество примеров того, как сделать последнюю часть на SO. Вот one.

Смежные вопросы