Armazenar Preferências com NSUserDefaults
Persista definições leves e preferências dos utilizadores em aplicações Objective-C usando NSUserDefaults, o armazenamento simples de chave e valor no iOS.
Armazenar Preferências com NSUserDefaults é uma aula grátis de Objective-C iOS Development for Legacy & Enterprise Apps no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Objective-C iOS Development for Legacy & Enterprise Apps, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Objective-C iOS Development for Legacy & Enterprise Apps inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
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.
Perguntas Frequentes
A aula “Armazenar Preferências com NSUserDefaults” é grátis?
Sim — o texto completo de “Armazenar Preferências com NSUserDefaults” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Objective-C iOS Development for Legacy & Enterprise Apps, atualize para CoddyKit PRO. O curso de Objective-C iOS Development for Legacy & Enterprise Apps inclui 4 aulas no total.
O que vou aprender em “Armazenar Preferências com NSUserDefaults”?
Persista definições leves e preferências dos utilizadores em aplicações Objective-C usando NSUserDefaults, o armazenamento simples de chave e valor no iOS. Você pratica Objective-C iOS Development for Legacy & Enterprise Apps com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Objective-C iOS Development for Legacy & Enterprise Apps?
Nenhuma experiência prévia é necessária. Objective-C iOS Development for Legacy & Enterprise Apps no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Armazenar Preferências com NSUserDefaults”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Objective-C iOS Development for Legacy & Enterprise Apps?
Sim. Cada aula de Objective-C iOS Development for Legacy & Enterprise Apps inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Listas de Propriedades e Arquivamento
- Fundamentos do Core Data
- Integração do SQLite com FMDB
- Armazenar Preferências com NSUserDefaults