数据存储之偏好设置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下

 

时间: 2024-07-28 19:33:23

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

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

一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用都有个NSUserDefaults实例,通过它来存取偏好设置.比如,保存用户名.字体大小.是否自动登录 存储位置: 存储形式: 二.代码示例 1.storyboard 2.代码 1 // 2 // YYViewController.m 3 // 01-偏好设置 4 // 5 // Created by apple on 14-6-7. 6 // Cop

详解iOS开发中app的归档以及偏好设置的存储方式_IOS

ios应用数据存储方式(归档) 一.简单说明 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦: 偏好设置(将所有的东西都保存在同一个文件夹下面,且主要用于存储应用的设置信息) 归档:因为前两者都有一个致命的缺陷,只能存储常用的类型.归档可以实现把自定义的对象存放在文件中.二.代码示例 1.文件结构 2.代码示例  YYViewController.m文件 复制代码 代码如下: // //  YYViewController.m //  02-归

iOS开发之数据存储之Preference(偏好设置)

1.概述 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能. 每个应用都有个NSUserDefaults实例,通过它来存取偏好设置.比如,保存用户名.字体大小.是否自动登录. NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults  setObject:@"itcast"  forKey:@"username

iOS - Swift NSUserDefaults 数据存储

前言 public class NSUserDefaults : NSObject 用来保存应用程序设置和属性.用户保存的数据.用户再次打开程序或开机后这些数据仍然存在.如果往 userDefaults 里存了一个可变数组,取出来的时候这个数组对象就变成了不可变的. NSUserDefaults 可以存储的数据类型包括:NSData.NSString.NSNumber.NSDate.NSArray.NSDictionary.如果要存储其他类型,则需要转换为前面的类型,才能用 NSUserDefa

iOS - OC NSUserDefaults 数据存储

前言 @interface NSUserDefaults : NSObject 用来保存应用程序设置和属性.用户保存的数据.用户再次打开程序或开机后这些数据仍然存在.如果往 userDefaults 里存了一个可变数组,取出来的时候这个数组对象就变成了不可变的. NSUserDefaults 可以存储的数据类型包括:NSData.NSString.NSNumber.NSDate.NSArray.NSDictionary.如果要存储其他类型,则需要转换为前面的类型,才能用 NSUserDefaul

excel-c#将数据存储为Excel时能不能设置为列自动适应内容?

问题描述 c#将数据存储为Excel时能不能设置为列自动适应内容? 代码中用的是ExcelPackage和 ExcelWorksheet. 下载下来后都挤在了一块,很不好看,总需要手动设置自动适应,很麻烦. 解决方案 参考 解决方案二: 设置那列为AutoFit()就行了 解决方案三: Microsoft.Office.Interop.Excel.Worksheet这个对象worksheet worksheet.Columns.EntireColumn.AutoFit()

数据存储之属性列表Plist

常用的数据存储有属性列表.偏好设置.归档.sqlite.coreData.上一博客了解了沙盒,现在了解下属性列表Plist. 通常通过NSArray.NSDictionary集合类的WriteToFile:atomically方法将他们存储到属性列表中.在属性列表能保存的数据类型如下 所以可以序列化的类有以下这些: NSArray.NSMutableArray.NSDictionary.NSMutableDictionary.NSData.NSMutableData.NSDate.NSStrin

数据存储之沙盒

一.沙盒 每个IOS程序都有自己的程序目录(沙盒),与其他系统文件隔离,应用只能访问自己的沙盒(IOS8中已经开放) 应⽤沙盒的文件系统⽬录,如下图所示(假设应用的名称叫Layer) 模拟器应⽤用沙盒的根路径在: (city--online是⽤用户名) /Users/city--online/Library/Developer/CoreSimulator/Devices/18B16F4E-BB49-41F1-90AE-842283E72C8C/data/Containers/Data/Appli

iOS学习之应用偏好设置

如今,即便是最简单的计算机程序也会包含一个偏好设置窗口,用户可以在其中设置应用专属的选项.在MAC OS X中,Preferences...菜单通常位于应用菜单中.选择该菜单项会弹出一个窗口,用户可以在其中输入和更改各种选项.iPhone和其他iOS设备有一个专门的"设置"应用程序来进行各种设置,你肯定用过很多次了. 设置捆绑包 通过应用设置,用户可以输入和更改任何带有设置捆绑包(settings bundle)的应用中的偏好设置.设置捆绑包是应用自带的一组文件,用于告诉设置该应用期望