IOS中的数据存储 简单总结

1.  NSKeyedArchiver(加密形式)

2.  plist

3.  NSUserDefaults

4.  writeToFile

5.  SQLite3

==== NSKeyedArchiver ========================================

-------CKPerson.h 代码

@interface CKPerson : NSObject

@property (nonatomic, copy) NSString *name;

@property (nonatomic, assign) int age;

- (void)encodeWithCoder:(NSCoder *)aCoder;

- (id)initWithCoder:(NSCoder *)aDecoder;

@end

------- CKPerson.m 代码

- (void)encodeWithCoder:(NSCoder *)aCoder

{

[aCoder encodeObject:self.name forKey:@"name"];

[aCoder encodeInteger:self.age forKey:@"age"];

}

- (id)initWithCoder:(NSCoder *)aDecoder

{

if(self = [super init])

{

self.name = [aDecoder decodeObjectForKey:@"name"];

self.age = [aDecoder decodeIntegerForKey:@"age"];

}

return self;

}

---------- CKViewController.m

- (IBAction)OnSaveDataClick:(UIButton *)sender {

CKPerson *p = [[CKPerson alloc] init];

p.name = @"GoldenKey";

p.age = 21;

NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

NSString *fileName = filePath = [docPath stringByAppendingPathComponent:@"student.hehe"];

[NSKeyedArchiver archiveRootObject:p toFile:filePath]; //保存数据

}

- (IBAction)OnGetDataClick:(UIButton *)sender {

CKPerson *p = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath]; //获取数据

}

==== plist存取 array、dictionary ===================================

- (IBAction)OnArraySaveClick:(UIButton *)sender {

NSArray *testArray = @[@"111",@"121",@"131",@"141",@"151"];

[testArray writeToFile:self.path4Array atomically:YES];

}

- (IBAction)OnArrayGetClick:(UIButton *)sender {

NSArray *testArray = [NSArray arrayWithContentsOfFile:self.path4Array];

NSLog(@"数组长度为%d",[testArray count]);

}

- (IBAction)OnDictionarySaveClick:(UIButton *)sender {

NSDictionary *dict = @{@"name":@"key",@"age":@12};

[dict writeToFile:self.path4Dict atomically:YES];

}

- (IBAction)OnDictionaryGetClick:(UIButton *)sender {

NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:self.path4Dict];

NSLog(@"name:%@",dict[@"name"]);

NSLog(@"age:%@",dict[@"age"]);

}

==== NSUserDefaults 程序票号设置 =================================

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults setInteger:1 forKey:@"testInt"];

[userDefaults synchronize];

int i = [userDefaults integerForKey:@"testInt"];

NSLog(@"i=%d",i);

//-----------

NSString *name = @"GoldenKey";

[userDefaults setObject:name forKey:@"name"];

[userDefaults synchronize];

NSString *nameResult = [userDefaults objectForKey:@"name"];

NSLog(@"%@",nameResult);

==== writeToFile ============================================

--读取string----------------------------------------------------

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask,YES);

NSString *ourDocumentPath =[documentPaths objectAtIndex:0];

//第二步:生成在该路径下的文件:

NSString *FileName=[ourDocumentPath stringByAppendingPathComponent:@"test.hehe"];

NSString *texts = @"test string";

NSData *data = [texts dataUsingEncoding:NSUTF8StringEncoding];

[data writeToFile:FileName atomically:YES];//将NSData类型对象data写入文件,文件名为FileName

//读取方式1

//NSData *dataResult=[NSData dataWithContentsOfFile:FileName options:0 error:NULL];//从FileName中读取出数据

//NSString *strResult = [[NSString alloc] initWithData:dataResult encoding:NSUTF8StringEncoding];

//读取方式2

NSString *strResult = [NSString stringWithContentsOfFile:FileName encoding:NSUTF8StringEncoding error:nil];

NSLog(@"%@",strResult);

//--存取dictionary-------------------------------------------

NSString *dictFileName = [ourDocumentPath stringByAppendingPathComponent:@"dict.hehe"];

NSDictionary *dictTest = @{@"name":@"GoldenKey",@"age":@24};

NSData *dictData = [NSJSONSerialization dataWithJSONObject:dictTest options:NSJSONWritingPrettyPrinted error:nil];

[dictData writeToFile:dictFileName atomically:YES];

NSData *dataResult = [NSData dataWithContentsOfFile:dictFileName];

NSDictionary *dictResult = [NSJSONSerialization JSONObjectWithData:dataResult options:NSJSONReadingMutableContainers error:nil];

NSLog(@"name = %@",dictResult[@"name"]);

==== sqlite3 ========================================================

时间: 2024-08-11 20:52:01

IOS中的数据存储 简单总结的相关文章

UI进阶--iOS中的数据存储常用方式

iOS中的数据存储常用方式: 1.xml属性列表(plist): 2.preference偏好设置; 3.NSKeyedArchiver归档(需要遵守NSCodeing协议); 4.SQLite 3; 5.Core Data; ...... 应用沙盒: 每个iOS应用都有?己的应?沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应?必须待在?己的沙盒里,其他应用不能访问该沙盒(提示:在IOS8中已经开放访问) 应?沙盒的文件系统?录,如下图所示(假设应用的名称叫Layer) 模拟器应?用沙

iOS中的数据存储

SQLite3 SQLite3是一款开源的嵌入式关系型数据库,可移植性好,易使用,内存开销小. SQLite3是无类型的,意味着你可以保存任何类型的数据到任意表的任意字段中. SQLite3常用的4种数据类型:text(文本字符串), integer(整型值), real(浮点值), blob(二进制数据(比如文件)). 在iOS中使用SQLite3,首先要添加库文件'libsqlite3.dylib'和导入主头文件#import<sqlite3.h> SQL语句的特点: 1> 不区分大

iOS中的数据存储 NSUserDefault NSKeyedArchiver(归档和反归档)

应用沙盒: 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录)与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒. 模拟器应用沙盒的根路径在: (apple是用户名, 6.0是模拟器版本) /Users/apple/Library/Application Support/iPhone Simulator/6.0/Applications 或者: /Users/用户名/资源库/Application Support/iPhone Simulator/6.1/Applic

iOS中的数据存储方式_Plist

plist文件只能存储OC常用数据类型(NSString.NSDictionary.NSArray.NSData.NSNumber等类型)而不能直接存储自定义模型对象; 我们拿NSData举例: /********** 写入plist文件 **********/ // plist文件写入路径 NSString *docPath1 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]

利用IOS模拟器将数据存储在本地沙盒中以及从沙盒中读取详细步骤

使用IO模拟器,应用沙盒的根路径为:/Users/apple/Library/Application Support/iPhone Simulator/6.0/Applications(6.0为模拟器的版本) 1.获取应用沙盒目录 <1>利用沙盒根目录拼接"Documents"字符串 NSString * home = NSHomeDirectory(); NSString * documents = [home stringByAppendingPathComponent

李洪强iOS开发之数据存储

李洪强iOS开发之数据存储 iOS应用数据存储的常用方式 1.lXML属性列表(plist)归档 2.lPreference(偏好设置) 3.lNSKeyedArchiver归档(NSCoding) 4.lSQLite3 5.lCore Data Documents: 保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如,游戏应用可将游戏存档保存在该目录 tmp: 保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除.应用没有运行时,系统也可能会清除该目录

67.Android中的数据存储总结

转载:http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117688&idx=1&sn=d6c73f9f04d02ede7a741b45e801d74e#rd 本篇文章会帮助大家快速了解Android中各种数据存储机制的应用场景以及基本使用方法,力求在头脑中建立一个“目录”.有了这个目录,具体使用细节在实际应用时再查询文档即可得到. 0. 概述 Android为我们提供了以下存储机制: Shared Preferenc

IOS学习:ios中的数据持久化初级(文件、xml、json、sqlite、CoreData)

IOS学习:ios中的数据持久化初级(文件.xml.json.sqlite.CoreData) 分类: ios开发学习2013-05-30 10:03 2316人阅读 评论(2) 收藏 举报 iOSXMLJSONSQLiteCoreData 一.文件操作 1.因为应用是在沙盒(Sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件: * Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录 * tmp:存放临时文件,iTunes不会备份和恢复

定时从一个数据库表中的数据存储到另外一个数据库中的表,而且怎么处理重复的数据?

原文:http://www.iteye.com/problems/77856 定时从一个数据库表中的数据存储到另外一个数据库中的表,而且怎么处理重复的数据? 表结构肯定是不能破坏,但是临时表如果是自己的数据库还行,问题是这个Oracle数据库是客户的数据库呢,你不能在他的数据库做任何多余的操作吧?还有别的更好的方法吗? 这个真的是比较困难. 首先,你要从客户机oracle取数据,因为这1分钟间隔之内不知道用户机新增加了哪些数据(大部分情况下是用户使用别的系统插入数据,而你又没有这个系统的程序接口