#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文件最外层的结构
//(NSArray和NSDictionary);
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;
}