NSUserDefaults做数据存储也是比较常用,适合轻量级的本地数据存储,读取也很方便。

一、支持的数据类型如下图(NSString、NSArray、NSDictionary、NSData、NSInteger、float、double、BOOL、NSURL)

二、使用Demo

  1. //
  2. // ViewController.m
  3. // NSUserDefaults
  4. //
  5. // Created by City--Online on 15/4/21.
  6. // Copyright (c) 2015年 CYW. All rights reserved.
  7. //
  8.  
  9. #import "ViewController.h"
  10.  
  11. @interface ViewController ()
  12.  
  13. @end
  14.  
  15. @implementation ViewController
  16.  
  17. - (void)viewDidLoad {
  18. [super viewDidLoad];
  19. #if 0 //保存数据
  20. NSString *mystring=@"cuiyw";
  21. int myint=12;
  22. float myfloat=12.0;
  23. double mydouble=12.00;
  24. NSDate *mydate=[NSDate date];
  25. NSArray *myarray=[[NSArray alloc]initWithObjects:@"a",@"b",@"c",nil];
  26. NSDictionary *mydic=[[NSDictionary alloc]initWithObjects:@[@"cui",@"yanwei"] forKeys:@[@"1",@"2"]];
  27. BOOL mybool=YES;
  28. NSData *mydata=[mystring dataUsingEncoding:NSUTF8StringEncoding];
  29. NSURL *myUrl=[[NSURL alloc]initWithString:@"http://www.baidu.com"];
  30. NSUserDefaults *userDefaults=[NSUserDefaults standardUserDefaults];
  31. // 设置数据
  32. [userDefaults setObject:mystring forKey:@"mystring"];
  33. [userDefaults setInteger:myint forKey:@"myint"];
  34. [userDefaults setDouble:mydouble forKey:@"mydouble"];
  35. [userDefaults setFloat:myfloat forKey:@"myfloat"];
  36. [userDefaults setObject:mydate forKey:@"mydate"];
  37. [userDefaults setObject:myarray forKey:@"myarray"];
  38. [userDefaults setObject:mydic forKey:@"mydic"];
  39. [userDefaults setBool:mybool forKey:@"mybool"];
  40. [userDefaults setObject:mydata forKey:@"mydata"];
  41. [userDefaults setURL:myUrl forKey:@"myUrl"];
  42. //数据立即保存
  43. [userDefaults synchronize];
  44. NSLog(@"%@",NSTemporaryDirectory());
  45. #endif
  46. #if 1
  47. NSUserDefaults *userDefaults=[NSUserDefaults standardUserDefaults];
  48. NSString *myString=[userDefaults stringForKey:@"mystring"];
  49. NSInteger myint=[userDefaults integerForKey:@"myint"];
  50. float myfloat=[userDefaults floatForKey:@"myfloat"];
  51. NSDate *mydate=[userDefaults objectForKey:@"mydate"];
  52. NSArray *myarray=[userDefaults arrayForKey:@"myarray"];
  53. NSDictionary *mydic=[userDefaults dictionaryForKey:@"mydic"];
  54. BOOL mybool=[userDefaults boolForKey:@"mybool"];
  55. NSString *mydata=[[NSString alloc]initWithData:[userDefaults dataForKey:@"mydata"] encoding:NSUTF8StringEncoding] ;
  56. NSURL *myUrl=[userDefaults URLForKey:@"myUrl"];
  57. NSLog(@"myString:%@\nmyint:%ld\nmyfloat:%lf\nmydate:%@\nmyarray:%@\nmydic:%@\nmybool:%d\nmydata:%@\nmyUrl:%@",myString,myint,myfloat,mydate,myarray,mydic,mybool,mydata,myUrl);
  58. //可以通过removeObjectForKey移除
  59. //[userDefaults removeObjectForKey:@"mystring"];
  60.  
  61. #endif
  62. }
  63.  
  64. - (void)didReceiveMemoryWarning {
  65. [super didReceiveMemoryWarning];
  66. // Dispose of any resources that can be recreated.
  67. }
  68.  
  69. @end

三、运行结果

NSUserDefaults保存在Library/Preferences下

数据存储之偏好设置NSUserDefaults的更多相关文章

  1. iOS开发UI篇—ios应用数据存储方式(偏好设置)

    iOS开发UI篇—ios应用数据存储方式(偏好设置) 一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用 ...

  2. ios应用数据存储方式(偏好设置)-转

    一.简单介绍 1.很多ios应用都支持偏好设置,比如保存用户名,密码,字体大小等设置,ios提供了一套标准的解决方案来为应用加入偏好设置功能. 2.每个应用都有个NSUserDefaults实例,通过 ...

  3. IOS第13天(2,私人通讯录,plist存储,偏好设置,归档)

    ***************plist存储 // 当点点击保存的时候调用 //保存 - (IBAction)save:(id)sender { // 获取沙盒的根路径 // NSString *ho ...

  4. ios存储 plist 偏好设置 自定义对象存储

    1,plist Plist注意:不能存储自定义对象 Plist:数组和字典,  如何判断一个对象能不能使用Plist,就看下有没有writeToFile 获取应用的文件夹(应用沙盒) NSString ...

  5. 数据存储简单了解(NSUserDefaults)

    数据存储-使用NSUserDefaults 两个类介绍: NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefault ...

  6. iOS开发-本地存储(偏好设置,Plist,归档)

    1.   NSUserDefaults //TODO: 1.NSUserDefaults NSUserDefaults类除了可以存储数组.字典.NSdata外,还可以直接存储OC基本类型属性.但是不能 ...

  7. Cocoa Touch(二):数据存储CoreData, NSKeyArchiver, NSOutputStream, NSUserDefaults

    应用程序离不开数据的永久存储,有两种方式实现存储:数据库和文本文件. 作为存储管理器,最基本的功能就是增删改查了. CoreData 1.插入 AppDelegate *app = [[UIAppli ...

  8. IOS第13天(3,私人通讯录,登陆状态数据存储,数据缓存, cell的滑动删除,进入编辑模式,单个位置刷新 )

    *****联系人的界面的优化 HMContactsTableViewController.m #import "HMContactsTableViewController.h" # ...

  9. iOS开发——UI进阶篇(十一)应用沙盒,归档,解档,偏好设置,plist存储,NSData,自定义对象归档解档

    1.iOS应用数据存储的常用方式XML属性列表(plist)归档Preference(偏好设置)NSKeyedArchiver归档(NSCoding)SQLite3 Core Data 2.应用沙盒每 ...

随机推荐

  1. spring security文档地址

    https://docs.spring.io/spring-security/site/docs/4.1.0.RELEASE/reference/htmlsingle/

  2. Screen、IP

    主要内容 Screen 安装screen [root@TS-DEV ~]# yum install screen [root@TS-DEV ~]# rpm -qa|grep screen screen ...

  3. ASP.NET Core2利用MassTransit集成RabbitMQ

    在ASP.NET Core上利用MassTransit来集成使用RabbitMQ真的很简单,代码也很简洁.近期因为项目需要,我便在这基础上再次进行了封装,抽成了公共方法,使得使用RabbitMQ的调用 ...

  4. MD5状态变量,为什么是A=0x67452301,B=0xefcdab89,C=0x98badcfe,D=0x10325476这几个变量

    找到过一篇答复: 3.3 Step 3. Initialize MD Buffer A four-word buffer (A,B,C,D) is used to compute the messag ...

  5. Elasticsearch 系列4 --- Windows10安装Kibana

    Kibana是Elastic Stack家族内的一部分,它是一个管理网站,与ES(Elastic Search)集成可以用来管理ES的索引,除ES外它还可以跟Elastic家族的其他组件进行整合如lo ...

  6. Git之初识

    我的Github地址:https://github.com/shinianzongjishinianxin 初见总是美好的,可是我第一次看到github有点纠结,因为看不懂,然而最终半蒙半猜还是注册完 ...

  7. C# 两个datatable中的数据快速比较返回交集或差集

    转自: https://www.cnblogs.com/lacey/p/5893380.html 如果两个datatable的字段完全一致的话,可以直接使用Except,Intersect //Exc ...

  8. C#中类的属性的获取

    /// <summary> /// 将多个实体转换成一个DataTable /// </summary> /// <typeparam name="T" ...

  9. python--Websocket实现, 加密 sha1,base64

    需要用到gevent-websocket包,这里我们用下图这个 一.websocket简单实现 ep1.py from geventwebsocket.handler import WebSocket ...

  10. linux安装mysql详细步骤

    最近买了个腾讯云服务器,搭建环境. 该笔记用于系统上未装过mysql的干净系统第一次安装mysql.自己指定安装目录,指定数据文件目录. linux系统版本: CentOS 7.3 64位 安装源文件 ...