OC的plist操作


#import <Foundation/Foundation.h>

#import "FJDog.h"

#define path @"/Users/IOS1601/Desktop/plist文件/plist1.plist"

#define path1 @"/Users/IOS1601/Desktop/plist文件/data.plist"

#define path2 @"/Users/IOS1601/Desktop/plist文件/plist2.plist"

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

    @autoreleasepool {

    //只能存数NSString,NSData,NSData,NSNumber,BOOL

        //NSArray(NSMutableArray),NSDictionary(NSMutableDictionary) 其他类创建的对象不能存储

        //包括系统其他的类

    

        //=========创建plist文件(plist文件里写数据)===========

     

        //1.先创建一个数组或者一个字典(注意数组的数组元素和

        //字典的键值对的值都只能是plist能够存储的类型);

        NSDate * date = [NSDate date];//获取当前时间


        NSArray * array = @[ @"哈哈",date,@1000 ,@NO];

        

        //2.将数组写入plist文件中(如果这个文件不存在就会创建这个plist文件)

        //如果这个plist文件已经存在,会修改plist文件的内容;

        //参数1:文件路径(在这里只能是plist文件的文件路径)

        //参数2:是否是原子操作(是否支持线程安全)

        [array writeToFile:path atomically:NO];

        

        //3.将字典写入plist文件中

        NSDictionary *dictionary = @{@"77":@"luhan",

                                     @"7":date

                                     ,@"777":array,

                                     @"7777":@123};

        [dictionary writeToFile:path atomically:NO];

        

        //=========plist文件的内容读取出来==============

        //如果想要将plist文件读出来,就要知道plist文件最外层的结构

        //(NSArrayNSDictionary);

        NSDictionary * dict2 = [[NSDictionary alloc]

        initWithContentsOfFile:path1];

        

        //拿到字典中的数组

        NSArray *arr = dict2[@"333"];

        //再拿到数组的第一个元素:

        NSString *name = arr[0];

        NSLog(@"%@",name);

        NSLog(@"%@",dict2);

        

        //最外层是数组

        

        NSArray *array2 = [NSArray arrayWithContentsOfFile:@"/Users/IOS1601/Desktop/plist文件/data1.plist"];

        NSLog(@"%@",array2);

        

        //=======plist不能存储其他的数据类型的对象=========

         FJDog *dog = [[FJDog alloc]init];

        dog.name = @"cat";

        //如果数组或者字典中出现了plsit不能存储的类型的对象

        //plist文件写入会失败;

        NSArray *arr2 = @[@"abc",@777,dog];

       

        [arr2 writeToFile:path2 atomically:NO];

        

    }

    return 0;

}



你可能感兴趣的:(plist)