против собственного Плиста - PullRequest
1 голос
/ 20 января 2011

В моих прошлых проектах я всегда делал NSObject-HelperClass, который взаимодействует с selfmade-Plist. Теперь я слышу, что могу использовать [NSUserDefaults standardUserDefaults], а также иметь свой словарь.

Так почему я должен использовать UserDefaults вместо моего собственного NSObject, который массирует plist?

ура эндо

Ответы [ 3 ]

5 голосов
/ 20 января 2011

NSUserDefaults - это удобный способ сохранить некоторые настройки и текущее состояние приложения (например, флажок «запомнить меня» установлен на «да» или «нет»). Вы должны использовать его только для такого рода данных.

Вы также можете использовать собственный PList для хранения такого рода информации, но это может быть излишним.

Ключевой вопрос: насколько велики данные, которые нужно хранить?

маленький набор данных => NSUserDefaults

большой набор данных => PList

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

1 голос
/ 20 января 2011

Если я правильно помню, Apple рекомендует использовать NSUserDefaults прежде всего для пользовательских настроек по умолчанию. Может быть, я слышал это в одном из видео с WWDC 2010.

Самая большая проблема с NSUserDefaults заключается в том, что они являются «полуизменяемыми». Вам придется заменить всю коллекцию на setObjectForKey, даже если вы измените только один объект, содержащийся в этой коллекции.

Кроме этого, я думаю, что можно использовать NSUserDefaults, если вы согласны с этим.

0 голосов
/ 20 января 2011

NSUserDefaults имеет ряд свойств, которые могут быть полезны;например, он автоматически объединит изменения, чтобы избежать слишком частой записи на диск.Также вы можете манипулировать им, используя команду «defaults» в терминале, что может быть удобно для тестированияНаконец, это потокобезопасно, что сложно сделать правильно.

...