zoukankan      html  css  js  c++  java
  • [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

     

  • 相关阅读:
    Delphi XE5 android 蓝牙通讯传输
    Delphi XE5 android toast
    Delphi XE5 android openurl(转)
    Delphi XE5 如何设计并使用FireMonkeyStyle(转)
    Delphi XE5 android 捕获几个事件
    Delphi XE5 android listview
    Delphi XE5 android 黑屏的临时解决办法
    Delphi XE5 android popumenu
    Delphi XE5 android 获取网络状态
    Delphi XE5 android 获取电池电量
  • 原文地址:https://www.cnblogs.com/superdo/p/4625366.html
Copyright © 2011-2022 走看看