数据存储之偏好设置NSUserDefaults

简介:

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

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

二、使用Demo


//
//  ViewController.m
//  NSUserDefaults
//
//  Created by City--Online on 15/4/21.
//  Copyright (c) 2015年 CYW. All rights reserved.
//
 
#import "ViewController.h"
 
@interface ViewController ()
 
@end
 
@implementation ViewController
 
- (void)viewDidLoad {
    [super viewDidLoad];
#if 0  //保存数据
    NSString *mystring=@"cuiyw";
    int myint=12;
    float myfloat=12.0;
    double mydouble=12.00;
    NSDate *mydate=[NSDate date];
    NSArray *myarray=[[NSArray alloc]initWithObjects:@"a",@"b",@"c",nil];
    NSDictionary *mydic=[[NSDictionary alloc]initWithObjects:@[@"cui",@"yanwei"] forKeys:@[@"1",@"2"]];
    BOOL mybool=YES;
    NSData *mydata=[mystring dataUsingEncoding:NSUTF8StringEncoding];
    NSURL *myUrl=[[NSURL alloc]initWithString:@"http://www.baidu.com"];
    NSUserDefaults *userDefaults=[NSUserDefaults standardUserDefaults];
    // 设置数据
    [userDefaults setObject:mystring forKey:@"mystring"];
    [userDefaults setInteger:myint forKey:@"myint"];
    [userDefaults setDouble:mydouble forKey:@"mydouble"];
    [userDefaults setFloat:myfloat forKey:@"myfloat"];
    [userDefaults setObject:mydate forKey:@"mydate"];
    [userDefaults setObject:myarray forKey:@"myarray"];
    [userDefaults setObject:mydic forKey:@"mydic"];
    [userDefaults setBool:mybool forKey:@"mybool"];
    [userDefaults setObject:mydata forKey:@"mydata"];
    [userDefaults setURL:myUrl forKey:@"myUrl"];
    //数据立即保存
    [userDefaults synchronize];
    NSLog(@"%@",NSTemporaryDirectory());
#endif
#if 1
    NSUserDefaults *userDefaults=[NSUserDefaults standardUserDefaults];
    NSString *myString=[userDefaults stringForKey:@"mystring"];
    NSInteger myint=[userDefaults integerForKey:@"myint"];
    float myfloat=[userDefaults floatForKey:@"myfloat"];
    NSDate *mydate=[userDefaults objectForKey:@"mydate"];
    NSArray *myarray=[userDefaults arrayForKey:@"myarray"];
    NSDictionary *mydic=[userDefaults dictionaryForKey:@"mydic"];
    BOOL mybool=[userDefaults boolForKey:@"mybool"];
    NSString *mydata=[[NSString alloc]initWithData:[userDefaults dataForKey:@"mydata"] encoding:NSUTF8StringEncoding] ;
    NSURL *myUrl=[userDefaults URLForKey:@"myUrl"];
    NSLog(@"myString:%@\nmyint:%ld\nmyfloat:%lf\nmydate:%@\nmyarray:%@\nmydic:%@\nmybool:%d\nmydata:%@\nmyUrl:%@",myString,myint,myfloat,mydate,myarray,mydic,mybool,mydata,myUrl);
    //可以通过removeObjectForKey移除
    //[userDefaults removeObjectForKey:@"mystring"];
     
#endif
}
 
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
@end

三、运行结果

NSUserDefaults保存在Library/Preferences下

 



相关文章
|
3月前
|
存储 数据建模 数据库
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
38 0
|
3月前
|
JavaScript 前端开发 API
第9期 一文读懂TS的(.d.ts)文件
第9期 一文读懂TS的(.d.ts)文件
49 0
|
JavaScript 前端开发 API
一文读懂TS的(.d.ts)文件
一文读懂TS的(.d.ts)文件
3840 0
|
8月前
ts的内置工具
ts的内置工具
49 0
|
4月前
ts文件解密
ts文件解密
73 0
|
7月前
|
JavaScript 前端开发
ts - ts基础
https://www.tslang.cn/ TypeScript是Microsoft公司注册商标。 TypeScript具有类型系统,且是JavaScript的超集。 它可以编译成普通的JavaScript代码。 TypeScript支持任意浏览器,任意环境,任意系统并且是开源的。
|
JavaScript 前端开发 数据安全/隐私保护
还不会ts?一文带你打开ts的大门(二)
下面的文章中将讲解我对 TS 入门的一些归纳总结。一起来了解一下吧!
还不会ts?一文带你打开ts的大门(二)
|
JavaScript 前端开发 Java
还不会ts?一文带你打开ts的大门(一)
下面的文章中将讲解我对 TS 入门的一些归纳总结。一起来了解一下吧!
还不会ts?一文带你打开ts的大门(一)