用NSUserDefaults保存和读取程序设置

2024-05-24 18:32

本文主要是介绍用NSUserDefaults保存和读取程序设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NSUserDefaults:用来保存应用程序设置和属性、用户保存的数据。用户再次打开程序或开机后这些数据仍然存在。NSUserDefaults可以存储的数据类型包括:NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary。如果要存储其他类型,则需要转换为前面的类型,才能用NSUserDefaults存储。

保存数据:

[cpp]  view plain copy
  1. -(void)saveSetting {  
  2.       
  3.     NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];  
  4.   
  5.     //save string  
  6.     NSString* saveString = @"simon";  
  7.     [defaults setObject:saveString forKey:@"name"];  
  8.   
  9.     //save integer  
  10.     NSInteger saveInt = 100;  
  11.     [defaults setInteger: saveInt forKey:@"count"];  
  12.   
  13.     //save bool  
  14.     BOOL saveBool = YES;  
  15.     [defaults setBool: saveBool forKey:@"flag"];  
  16.   
  17.     //save image  
  18.     UIImage *image=[[UIImage alloc]initWithContentsOfFile:@"photo.jpg"];  
  19.     NSData *imageData = UIImageJPEGRepresentation(image, 100);//UIImage对象转换成NSData  
  20.     [defaults setObject:imageData forKey:@"image"];  
  21.   
  22.     //用synchronize方法把数据持久化到standardUserDefaults数据库  
  23.     [defaults synchronize];  
  24. }  

读取数据:

[cpp]  view plain copy
  1. -(void)getSetting {  
  2.     NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];  
  3.       
  4.     //根据键值取出name  
  5.     NSString *name = [defaults objectForKey:@"name"];  
  6.       
  7.     NSInteger count = [defaults objectForKey:@"count"];  
  8.     BOOL bflag = [defaults objectForKey:@"flag"];  
  9.       
  10.     NSData *imageData = [defaults dataForKey:@"image"];  
  11.     UIImage *Image = [UIImage imageWithData:imageData];//NSData转换为UIImage 

这篇关于用NSUserDefaults保存和读取程序设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/999194

相关文章

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE