iOS的Sharedpreferences .plist .全名是:Property List .同android 一样,文件是xml格式的。
1.文档位置:程序user Document文件夹下
2.创建方法不同与android ,可以在xcode直接配置 。
3.使用方法:
一:创建方法,直接新建文件,选择Property List
二:添加一些信息 android中没有此操作。
三:数据类型 :很全,基本什么类型都可以存了。NSData 是 java的字节流inputstream
数据结构可以是 Map(Dictionary) 和array .
四:读取数据 ,获取数组或字典后可以读取相应数据。
-(void)getDataFromPlist{ NSString*plistPath = [[NSBundle mainBundle]pathForResource:@"user" ofType:@"plist"]; NSMutableDictionary*dataDic = [[NSMutableDictionary alloc]initWithContentsOfFile:plistPath]; NSLog(@"%@",dataDic); }
五:写入修改数据。项目中建立的plist修改有坑。一般在沙盒中建plist文件使用。
创建plist文件路径(一般保存到沙盒document文件夹中) //获取plist文件路径 NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsPath = [path objectAtIndex:0]; NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"user_phone.plist"]; 2.根据路径,创建或者取出plist文件内容(如果是数组用NSMutableArray去接,如果是字典就用NSMutableDictionary去接) //比如说根容器是个数组(字典同理) NSMutableArray * plistArray =nil; if (![[NSMutableArray alloc]initWithContentsOfFile:plistPath]) { //创建一个根容器为数组的plist文件 plistArray = [NSMutableArray array]; [plistArray writeToFile:plistPath atomically:YES]; }else{ plistArray = [[NSMutableArray alloc] initWithContentsOfFile:plistPath]; } 3.关于plsit文件的一些操作(其实就是操作数组或字典,然后写入plist) 添加一条数据(以添加账号密码为例) NSMutableDictionary * newsDict = [NSMutableDictionary dictionary]; [newsDict setObject:@"1234567890" forKey:@"user_phone"]; [newsDict setObject:@"123" forKey:@"user_pass"]; [plistArray addObject:newsDict]; [plistArray writeToFile:plistPath atomically:YES]; 修改一条数据 for (NSDictionary * dict in plistArray) { if ([dict[@"user_phone"] isEqualToString:userPhone]) { [dict setValue:userPass forKey:@"user_pass"]; [plistArray writeToFile:plistPath atomically:YES]; NSLog(@"%@",plistArray); return; } } 删除一条数据 NSMutableArray * plistArray = [[NSMutableArray alloc] initWithContentsOfFile:plistPath]; for (int i = 0; i < plistArray.count; i++) { NSDictionary * dict = plistArray[i]; if ([dict[@"user_phone"] isEqualToString:userPhone]) { [plistArray removeObject:dict]; [plistArray writeToFile:plistPath atomically:YES]; } }