随笔 - 262  文章 - 0  评论 - 5  阅读 - 20万

【iOS入门】plist使用

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];
            }
}
复制代码

 

posted on   wp7ers  阅读(963)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示