ios数据永久存储之----NSUserDefaults

我们在开发app时不可避免的会在本地存储一些数据,NSUserDefaults就是系统提供的一个用来数据存储的类,本片文章就来介绍一些NSserdefazults的用法。

详细内容:https://my.oschina.net/u/1245365/blog/294449

首先对于新手来说NSUserdefaults到底是个什么东东呢???

NSUserDefaults 是iOS系统提供的一个单例,在整个程序中只有一个实例对象,他可以用于数据永久存储,而且简单实用,所以大家都比较喜欢这用方式。

1.获取NSUserDefault的单例 :通过standardUserDefaults

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

2.存储方式:

NSUserDefaults 单例已key-value  的形式存储一系列的设置,key是名称,value是相应的数据。存数据(objectForKey:),取数据(setObject:forKey:)

存储的数据类型包括:NSData,NSString,NSNumber,NSDate, NSArray,NSDictionary。假如你要存储图片的话,就不能直接存储了,需要先将图片归档为NSData类型。

3.存取不同类型的数据:
*******存:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@”jack“ forKey:@"firstName"];
[defaults setInteger:10 forKey:@"Age"];

UIImage *image =[UIImage imageNamed:@"somename"];
NSData *imageData = UIImageJPEGRepresentation(image, 100);//把image归档为NSData
[defaults setObject:imageData forKey:@"image"];

[defaults synchronize];

其中,方法synchronize是为了强制存储,其实并非是必须得,因为这个方法会在系统中默认调用,但是你确认要马上就储存,这是可以的

*********读

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *firstName = [defaults objectForKey:@"firstName"]
NSInteger age = [defaults integerForKey:@"Age"];

NSData *imageData = [defaults dataForKey:@"image"];
UIImage *image = [UIImage imageWithData:imageData];

注意:对相同的Key赋值约等于一次覆盖,要保证每一个Key的唯一性

其他几个存取不同类型数据的方法:

- setBool:forKey:
- setFloat:forKey:
- setInteger:forKey:
- setDouble:forKey:
- setURL:forKey:

我在项目中的简单应用:
在appdelegate中通过

- (void)registerDefaults:方法来初始化,

				
时间: 2024-10-10 21:15:04

ios数据永久存储之----NSUserDefaults的相关文章

IOS数据存储之NSUserDefaults

前言: 作为从事Android开发人来说一定听说过SharedPreferences,然后要成为一名ios开发工程师来说咋能不知道NSUserDefaults!接下来让我们认识一下. NSUserDefaults简介: NSUserDefaults是一种存储轻量级的本地数据方式,NSUserDefaults是一个单例,主要用于数据的永久保存,简单实用.试用场景:比如我们保存一下用户的登录信息,一个标识等.支持的数据格式有:NSNumber(Integer.Float.Double),NSStri

iOS 数据持久化之NSUserDefaults

原创Blog,转载请注明 blog.csdn.net/hello_hwc 前言:iOS的数据持久化存储分为很多种 普通文件,plist NSUserDefaults CoreData KeyChain 本文讲解NSUserDefaults的使用 StandardUserDefaults 大部分的时候使用StandardUserDefaults来保存数据,这是一个共享的UserDefaults,意味着在程序的任意一个地方访问到的都是同一个UserDefaults 写数据 swift代码 var u

ios数据存储之一 —— NSUserDefaults(偏好设置)

1 存储数据到NSUserDefaults(偏好设置)中 // 获取NSUserDefaults对象 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // 保存数据(如果设置数据之后没有同步, 会在将来某一时间点自动将数据保存到Preferences文件夹下面) [defaults setObject:@"lnj" forKey:@"name"]; [defaults setObje

IOS数据持久化之NSUserDefaults

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

iOS数据持久化(一、NSUserDefaults)

NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选(需要加密的登录信息请略过).下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯. 因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接读取就可以了. NSUserDefaults支持的数据格式有:NSNumber

iOS 数据持久化之使用NSUserDefaults存储数据

原文:http://blog.csdn.net/lxinl/article/details/11770675 OS下可以使用NSUserDefaults.sqlite.CoreData几种常用的方式来存储数据,其中NSUserDefaults用来存储类似用户的配置等这些的数据,后两者用户存储大批量和比较复杂的数据.NSUserDefault的使用比较简单: [cpp] view plaincopy NSUserDefaults *mySettingData = [NSUserDefaults s

iOS数据持久化存储

本文中的代码托管在github上:https://github.com/WindyShade/DataSaveMethods 相对复杂的App仅靠内存的数据肯定无法满足,数据写磁盘作持久化存储是几乎每个客户端软件都需要做的.简单如"是否第一次打开"的BOOL值,大到游戏的进度和状态等数据,都需要进行本地持久化存储.这些数据的存储本质上就是写磁盘存文件,原始一点可以用iOS本身支持有NSFileManager这样的API,或者干脆C语言fwrite/fread,Cocoa Touch本身

iOS数据存储的几种方式

iOS的数据存储是iOS应用开发的重要知识点: 关于这方面知识,网上有很多介绍,但对于代码层次的使用方式并未有系统全面介绍.此文章针对iOS稍熟悉的童鞋,需要对CoreData的原理有一定的了解.目前存储方式大概有以下几种: NSKeyedArchiver  适用简单数据加密 NSUserDefaults  适用配置参数 Write  文件操作,同NSKeyedArchiver SQLite3  操作较复杂,不建议使用. CoreData  取代SQLite3,但要遵循NSManagedObje

IOS数据持久化之归档NSKeyedArchiver

IOS数据持久化的方式分为三种: 属性列表 (自定义的Property List .NSUserDefaults) 归档 (NSKeyedArchiver) 数据库 (SQLite.Core Data.第三方类库等) 下面主要来介绍一个归档NSKeyedArchiver. 归档(又名序列化),把对象转为字节码,以文件的形式存储到磁盘上:程序运行过程中或者当再次重写打开程序的时候,可以通过解归档(反序列化)还原这些对象. 归档方式: 对Foundation框架中对象进行归档 对自定义的内容进行归档