Хранение настроек с NSUserDefaults
Сохраняйте лёгкие параметры и пользовательские настройки в приложениях Objective-C с помощью NSUserDefaults — простейшего хранилища «ключ — значение» в iOS.
«Хранение настроек с NSUserDefaults» — бесплатный урок Objective-C iOS Development for Legacy & Enterprise Apps на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Objective-C iOS Development for Legacy & Enterprise Apps, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Objective-C iOS Development for Legacy & Enterprise Apps содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
What is NSUserDefaults?
NSUserDefaults is a built-in key-value store for small pieces of data — settings, flags, and preferences. It persists automatically across app launches.
When to Use It
Use it for small, simple values:
- User toggles (dark mode on/off)
- Last selected tab
- Onboarding-completed flag
Do NOT use it for large data or sensitive secrets.
The Standard Instance
Access the shared store through standardUserDefaults.
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];Writing Values
Set values by key with typed setters.
[defaults setBool:YES forKey:@"darkMode"];
[defaults setInteger:5 forKey:@"launchCount"];
[defaults setObject:@"Ada" forKey:@"username"];Reading Values
Read with matching getters. Missing keys return sensible defaults (NO, 0, nil).
BOOL dark = [defaults boolForKey:@"darkMode"];
NSInteger count = [defaults integerForKey:@"launchCount"];
NSString *name = [defaults stringForKey:@"username"];Supported Types
NSUserDefaults stores property-list types only:
NSString,NSNumber,BOOL, integers, doublesNSArray,NSDictionary(of plist types)NSData,NSDate
Persistence is Automatic
Modern iOS writes changes to disk automatically. The old synchronize call is no longer needed and is deprecated.
// [defaults synchronize]; // no longer requiredRegistering Default Values
Provide fallback values for first launch with registerDefaults:. These apply only until the user changes them.
[defaults registerDefaults:@{@"darkMode": @NO, @"fontSize": @14}];Removing a Value
Delete a stored key when it is no longer needed.
[defaults removeObjectForKey:@"username"];Storing Custom Objects
To store a custom object, archive it to NSData first (it must conform to NSCoding), then save that data. NSUserDefaults cannot hold arbitrary objects directly.
Security Caveat
NSUserDefaults is not encrypted. Never store passwords, tokens, or other secrets there — use the Keychain for sensitive data.
Quick Check
Test your NSUserDefaults knowledge.
Recap
You learned NSUserDefaults persistence:
- A simple key-value store for small preferences
- Write with
setBool:/setObject:, read with matching getters - Stores only property-list types
- Persistence is automatic;
synchronizeis deprecated - Not encrypted — keep secrets in the Keychain
It is the go-to for lightweight settings.
Часто задаваемые вопросы
Урок «Хранение настроек с NSUserDefaults» бесплатный?
Да — полный текст урока «Хранение настроек с NSUserDefaults» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Objective-C iOS Development for Legacy & Enterprise Apps, подпишись на CoddyKit PRO. Курс Objective-C iOS Development for Legacy & Enterprise Apps содержит 4 уроков всего.
Чему я научусь в уроке «Хранение настроек с NSUserDefaults»?
Сохраняйте лёгкие параметры и пользовательские настройки в приложениях Objective-C с помощью NSUserDefaults — простейшего хранилища «ключ — значение» в iOS. Ты практикуешь Objective-C iOS Development for Legacy & Enterprise Apps с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Objective-C iOS Development for Legacy & Enterprise Apps?
Предыдущий опыт не требуется. Objective-C iOS Development for Legacy & Enterprise Apps на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Хранение настроек с NSUserDefaults»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Objective-C iOS Development for Legacy & Enterprise Apps?
Да. Каждый урок Objective-C iOS Development for Legacy & Enterprise Apps включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Списки свойств и архивирование
- Основы Core Data
- Интеграция SQLite с FMDB
- Хранение настроек с NSUserDefaults