[Objective-C] 012_数据持久化_XML属性列表,NSUserDefaults

在日常开发中经常要对NSString、NSDictionary、NSArray、NSData、NSNumber这些基本类的数据进行持久化,我们可以用XML属性列表持久化到.plist 文件中,也可以用NSUserDefaults,下面我们就开搞吧。

XML属性列表方式:

#import "AppDelegate.h"
#import "Person.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    NSDictionary *studentDic = [NSDictionary dictionaryWithObjectsAndKeys:@"SuperDo.Mount",@"student_mount",@"SuperDo.AC",@"student_ac",@"SuperDo.Horse",@"student_horse", nil];
    
    //获得Document的路径
    NSString *documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    NSString *path = [documents stringByAppendingPathComponent:@"students.plist"];
    
    //保存到Document目录下
    if([studentDic writeToFile:path atomically:YES]) {
        NSLog(@"Save to file success!");
    }
    
    //从path初始化
    NSDictionary *students = [NSDictionary dictionaryWithContentsOfFile:path];
    for (NSString *key in students.allKeys) {
        NSLog(@"%@: %@",key,[students objectForKey:key]);
    }
    
    return YES;
}

@end

保存到Documet下文件信息:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>student_ac</key>
	<string>SuperDo.AC</string>
	<key>student_horse</key>
	<string>SuperDo.Horse</string>
	<key>student_mount</key>
	<string>SuperDo.Mount</string>
</dict>
</plist>

 

NSUserDefaults 方式:

#import "AppDelegate.h"
#import "Person.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    NSDictionary *studentDic = [NSDictionary dictionaryWithObjectsAndKeys:@"SuperDo.Mount",@"student_mount",@"SuperDo.AC",@"student_ac",@"SuperDo.Horse",@"student_horse", nil];
    
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    [userDefaults setObject:studentDic forKey:@"students"];
    
    NSDictionary *dic = [userDefaults objectForKey:@"students"];
    for (NSString *key in dic.allKeys) {
        NSLog(@"NSUserDefaults 方式 ---- 》 %@: %@",key,[dic objectForKey:key]);
    }
    
    return YES;
}

@end

XML属性列表方式打印结果:

2015-07-06 20:39:53.623 Attendance[1129:68434] Save to file success!

2015-07-06 20:39:53.624 Attendance[1129:68434] student_ac: SuperDo.AC

2015-07-06 20:39:53.624 Attendance[1129:68434] student_mount: SuperDo.Mount

2015-07-06 20:39:53.624 Attendance[1129:68434] student_horse: SuperDo.Horse

 

NSUserDefault方式打印结果:

2015-07-06 20:50:44.743 Attendance[1155:70007] NSUserDefaults 方式 ---- student_mount: SuperDo.Mount

2015-07-06 20:50:44.743 Attendance[1155:70007] NSUserDefaults 方式 ---- student_ac: SuperDo.AC

2015-07-06 20:50:44.743 Attendance[1155:70007] NSUserDefaults 方式 ---- student_horse: SuperDo.Horse

 

本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4625366.html

 

原文地址:https://www.cnblogs.com/superdo/p/4625366.html