Snail—OC学习之本地数据持久化(plist)

plist文件的格式

plist是一种数据持久化的文件

1、最外层通常为数组或者字典

2、plist里面的数据 只局限于数组、字典、逻辑值(BOOL)、NSNumber、NSData、NSDate、字符串等数据类型

3、无法存储自定义类型的对象

plist作用

1、不适用它作为缓存 无法存储自定义类型的对象

2、通常存储长时间不容易发生变化的数据。国家、省市区、汽车品牌、项目的info.plist工程的设置信息

3、占用内存小

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        //plist是 数组和字典的套用关系来存储数据的一种文件
        //创建一个字典 字面有数组、字符串等等
        NSString * string1 = @"snail";
        NSString * string2 = @"jj";
        NSArray * array = @[@"one",@"two",@"three"];

        NSDictionary * dict = @{@"SNAIL":string1,
                                @"JJ":string2,
                                @"ARRAY":array
                                };
        //用字典生成plist文件
        BOOL ret = [dict writeToFile:@"/Users/Snail/Desktop/snail/myPlist.plist" atomically:YES];
        if (ret) {
            NSLog(@"生成成功");
        }else{
            NSLog(@"生成失败");
        }

        //因为我们最终是以NSDictionary来生成plist文件的,所以再读plist文件的时候,首先它是一个字典
        NSDictionary * dict1 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/Snail/Desktop/snail/myPlist.plist"];

        /*----------dict1的输出格式
         {
         ARRAY = (
         one,
         two,
         three
         );
         JJ = jj;
         SNAIL = snail;
         }
         */
        NSLog(@"%@",dict1);

        //用数组来生成plist文件
        NSArray * array1 = @[
                             //字符串数组
                             @[@"one",@"two",@"three"],
                             //字符串
                             @"Snail",
                             //字典
                             @{@"name":@"Snail",@"age":@10}
                             ];
        [array1 writeToFile:@"/Users/Snail/Desktop/snail/myPlist1.plist" atomically:YES];

        //读plist文件
        NSArray * arr = [NSArray arrayWithContentsOfFile:@"/Users/Snail/Desktop/snail/myPlist1.plist"];
        /*----------可以看出输出的是一个数组、一个字符串、字典
         (
         one,
         two,
         three
         ),
         Snail,
         {
         age = 10;
         name = Snail;
         }
         */
        NSLog(@"%@",arr);

    }
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-28 14:42:19

Snail—OC学习之本地数据持久化(plist)的相关文章

Snail—OC学习之本地数据持久化(归档)

#import <Foundation/Foundation.h> #import "Dog.h" int main(int argc, const char * argv[]) { @autoreleasepool { NSString * filePath = @"/Users/student/Desktop/snail/array.data"; //对官方类创建的对象进行存储 NSArray * array = @[@"one"

Unity游戏开发学习之路——数据持久化

数据持久化 谈到数据持久化,在Unity的游戏开发中十分重要的,不管是是在本地和服务器端,数据持久化都是我们学习的难点,数据持久化的技术有很多种,这里只选取几种,目前也是我所学到的,在接下来的时间里会陆续整理到这里. Part1:PlayerPrefs类 这是unity圣典中给出的, PlayerPrefs 游戏存档 Description 描述 在游戏会话中储存和访问游戏存档.这个是持久化数据储存,比如保存游戏记录. Editor/Standalone 编辑器 / 桌面平台 Mac OS 在M

本地数据持久化方法

http://www.jianshu.com/p/86ea6da905cf http://www.cocoachina.com/industry/20130328/5908.html 1. 属性列表(plist)NSUserDefaults 属性列表是一种明文的轻量级存储方式,其存储格式有多种,最常规格式为XML格式.在我们创建一个新的项目的时候,Xcode会自动生成一个info.plist文件用来存储项目的部分系统设置.plist只能用数组(NSArray)或者字典(NSDictionary)

数据持久化-Plist文件写入

数据持久化,常见4种:归档,plist文件,sqlite,coreData.今天复习的是plist文件读写. // // ViewController.m // Test_Plist // // Created by lidongbo on 14/10/30. // Copyright (c) 2014年 lidongbo. All rights reserved. // #import "ViewController.h" @interface ViewController () @

Redis学习总结(1)——数据持久化

以前研究Redis的时候,很多东西都不太明白,理解得也不太深,现在有时间重新拾起来看看,将一些心得记录下来,希望和大家一起探讨. 一.简介 Redis是一个单线程高可用的Key-Value存储系统,和Memcached类似,但是实际使用上最大的区别有两方面: Redis支持多种数据结构类型的value,比如string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型): Memcached在出现系统瘫痪的情况下,无法实现系统恢复,而

Snail—OC学习之文件操作(非读写)

#import <Foundation/Foundation.h> //宏定义一个文件夹的路径信息 #define path @"/Users/XXX/Desktop/Snail" //宏定义一个文件的路径 #define filePath @"/Users/XXX/Desktop/Snail/Snail3/Snail.txt" int main(int argc, const char * argv[]) { @autoreleasepool { //

ios学习笔记-数据持久化

沙盒 沙盒是一种数据安全策略,只允许自己的应用访问目录.可以使用NSHomeDirectory()获取. ios沙盒下有三个子目录: 1.Documents目录:用于存储比较大的文件活着需要频发女更新的数据,需要持久化的数据.获取代码: NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 2.Library目录:

数据持久化-Plist

Plist 保存用户的配置数据 1.创建Plist文件,用Dictionary 读出数据 ? ??//获取沙盒目录 ? ? NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); ?? ? ? ? NSString *path=[paths objectAtIndex:0]; ?? ? ? ? //得到完整的文件名称 ? ? NSString *filepa

Snail—OC学习之数组NSArray

NSArray是OC中的数组,是用来存储对象的.可以是重复的.有序的 新建一个Dog的类,在main.m中引入Dog的头文件 #import <Foundation/Foundation.h> #import "Dog.h" int main(int argc, const char * argv[]) { @autoreleasepool { Dog * dog = [[Dog alloc] init]; //数组的创建方式 //空数组创建 NSArray * arrry