zoukankan      html  css  js  c++  java
  • 数据存储的常见方式

    第一种保存方式:NSKeyedArchiver
    
    代码很简单就不多解释了直接上代码:    //=================NSKeyedArchiver========================
    NSString *saveStr1 = @"我是";
    NSString *saveStr2 = @"数据";
    NSArray *array = [NSArray arrayWithObjects:saveStr1, saveStr2, nil];
    //----Save
    //这一句是将路径和文件名合成文件完整路径
    NSString *Path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *filename = [Path stringByAppendingPathComponent:@"saveDatatest"];
    [NSKeyedArchiver archiveRootObject:array toFile:filename];
    //用于测试是否已经保存了数据
    saveStr1 = @"hhhhhhiiii";
    saveStr2 =@"mmmmmmiiii";
    //----Load
    array = [NSKeyedUnarchiver unarchiveObjectWithFile: filename];
    saveStr1 = [array objectAtIndex:0];
    saveStr2 = [array objectAtIndex:1];
    CCLOG(@"str:%@",saveStr1);
    CCLOG(@"astr:%@",saveStr2);
    
    
     第二种保存方式:NSUserDefaults
    
    代码很简单就不多解释了直接上代码:=================NSUserDefaults========================
    NSString *saveStr1 = @"我是";
    NSString *saveStr2 = @"数据";
    NSArray *array = [NSArray arrayWithObjects:saveStr1, saveStr2, nil];
    //Save
    NSUserDefaults *saveDefaults = [NSUserDefaults standardUserDefaults];
    [saveDefaults setObject:array forKey:@"SaveKey"];
    //用于测试是否已经保存了数据
    saveStr1 = @"hhhhhhiiii";
    saveStr2 =@"mmmmmmiiii";
    //---Load
    array = [saveDefaults objectForKey:@"SaveKey"];
    saveStr1 = [array objectAtIndex:0];
    saveStr2 = [array objectAtIndex:1];
    CCLOG(@"str:%@",saveStr1);
    CCLOG(@"astr:%@",saveStr2);
    
    
    第三种保存方式:Write写入方式
    
    代码很简单就不多解释了直接上代码://=================Write写入方式========================
    NSString *saveStr1 = @"我是";
    NSString *saveStr2 = @"数据";
    NSArray *array = [NSArray arrayWithObjects:saveStr1, saveStr2, nil];
    //----Save
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    if (!documentsDirectory) {
        NSLog(@"没找到");
    }
    NSMutableArray *saveDataArray=nil;
    NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"Savedatas.plist"];
    [[NSArray arrayWithObjects:array,nil] writeToFile:appFile atomically:NO];
    //用于测试是否已经保存了数据
    saveStr1 = @"hhhhhhiiii";
    saveStr2 =@"mmmmmmiiii";
    //----Load
    if([[NSFileManager defaultManager] fileExistsAtPath:appFile]){
        saveDataArray = [NSMutableArray arrayWithContentsOfFile:appFile];
    } else{
        saveDataArray = [NSMutableArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Savedatas" ofType:@"plist"]];
    }
    NSArray *strArray = [saveDataArray objectAtIndex:0];
    saveStr1 = [strArray objectAtIndex:0];
    saveStr2 = [strArray objectAtIndex:1];
    CCLOG(@"str:%@",saveStr1);
    CCLOG(@"astr:%@",saveStr2);
    
    
     不论哪种形式代码都很容易理解,那么以上三种保存方式代码中都带有如下两行代码;
        saveStr1 = @"hhhhhhiiii";
    saveStr2 =@"mmmmmmiiii";
  • 相关阅读:
    实现自动进行金额汇总
    实现模糊查询
    手电筒查询
    lov的建立
    日历 的建立
    快速创建Folder
    TAB页制作
    堆叠画布
    弹性域的开发
    注销记录的实现
  • 原文地址:https://www.cnblogs.com/gaoxiao228/p/2468767.html
Copyright © 2011-2022 走看看