美文网首页
数据存储

数据存储

作者: 石玉龙 | 来源:发表于2016-11-06 17:27 被阅读8次

1> XML属性列表归档:.plist 

2> 偏好设置:NSUserDefault

3> 归档:NSKeydeArchiver

4> 关系型数据库:Sqlite 3

5> 对象型的数据库:Core Data

沙盒:文件系统目录,iOS应用程序都是独立的沙盒;

Documents: 如:数据库文件放置这里;

Library: Caches, Preferences 如:图片等缓冲文件放置这里,会自动删除掉的空间;

tmp:

推介工具软件:SimPholders

- (void)initWithOther

{

// 根目录

NSString *home = NSHomeDirectory();

NSLog(@"home : %@", home);

// 获取Document,创建一个bank.plist文件

NSString *document = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

NSString *filePath = [document stringByAppendingPathComponent:@"bank.plist"];

NSLog(@"filePath : %@", filePath);

// 字典写入

NSDictionary *dic = @{@"name" : @"yulong", @"count" : @"6", @"id" : @"123456", @"type" : @"农行"};

[dic writeToFile:filePath atomically:YES];

// 读文件

NSDictionary *readDic = [NSDictionary dictionaryWithContentsOfFile:filePath];

NSLog(@"readDic : %@", readDic);

}

- (void)writeData

{

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

[defaults setObject:@"yulong" forKey:@"name"];

[defaults setInteger:1 forKey:@"money"];

[defaults setDouble:1.78 forKey:@"height"];

[defaults synchronize];

}

- (void)readData

{

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSString *name = [defaults objectForKey:@"name"];

NSUInteger money = [defaults integerForKey:@"money"];

double height = [defaults doubleForKey:@"height"];

NSLog(@"name : %@, money : %lu, height : %f", name, (unsigned long)money, height);

}

偏好设置:保存应用程序的配置信息;

- (void)writeArchive

{

Student *student = [[Student alloc] init];

student.name = @"yulong";

student.age = 8;

student.className = @"小班一班";

student.classID = @"1234560798";

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

NSString *filePath = [document stringByAppendingPathComponent:@"student.txt"];

NSLog(@"filePath : %@", filePath);

[NSKeyedArchiver archiveRootObject:student toFile:filePath];

}

- (void)readArchive

{

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

NSString *filePath = [document stringByAppendingPathComponent:@"student.txt"];

NSLog(@"filePath : %@", filePath);

Student *student = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];

NSLog(@"%@ %lu %@ %@", student.name, (unsigned long)student.age, student.className, student.classID);

}

自定义对象保存到文件中,必须实现<NSCoding>协议;

- (instancetype)initWithCoder:(NSCoder *)aDecoder

{

NSLog(@"%s", __func__);

self = [super init];

if (self)

{

_name = [aDecoder decodeObjectForKey:@"name"];

_age = [aDecoder decodeIntegerForKey:@"age"];

_className = [aDecoder decodeObjectForKey:@"className"];

_classID = [aDecoder decodeObjectForKey:@"classID"];

}

return self;

}

- (void)encodeWithCoder:(NSCoder *)aCoder

{

NSLog(@"%s", __func__);

[aCoder encodeObject:_name forKey:@"name"];

[aCoder encodeInteger:_age forKey:@"age"];

[aCoder encodeObject:_className forKey:@"className"];

[aCoder encodeObject:_classID forKey:@"classID"];

}

相关文章

  • Android ContentProvider(一)

    Android数据存储(一) Android数据存储(二) Android数据存储(三) Android数据存储(...

  • day07

    Android的存储方式 使用SharedPreferences存储数据 文件存储数据 SQLite数据库存储数据...

  • zookeeper数据存储及查看hbase信息

    zookeeper数据存储及查看hbase信息 1.zookeeper数据存储: 1.1内存数据存储、磁盘数据存储...

  • SharedPreferences存储数据

    Android的存储方式 使用SharedPreferences存储数据文件存储数据SQLite数据库存储数据使用...

  • iOS数据存储

    iOS数据存储 数据存储

  • 03Stack栈

    数据结构=数据+存储方式+操作数据 存储什么数据?如int,string类型存储方式 如何组织数据,数据之...

  • iOS App 安全测试

    一、数据存储安全 主要从以下几个方面考虑 Sandbox 数据存储 Keychain 数据存储 Console ...

  • Vue数据存储和页面传值

    数据存储和页面传值 数据存储 Vue 数据存储方法有Vuex、LocalStorage、SessionStorag...

  • SharedPreference与文件存储

    Android常用数据存储方式有SharedPreferences存储数据(虽然还是属于内部存储)、文件存储(内部...

  • 23、localStorage、sessionStorage的储

    1:存储数据 2:取出数据 3:删除存储数据 4:更改数据

网友评论

      本文标题:数据存储

      本文链接:https://www.haomeiwen.com/subject/qkknuttx.html