zoukankan      html  css  js  c++  java
  • iOS中的数据存储方式_Plist

    plist文件只能存储OC常用数据类型(NSString、NSDictionary、NSArray、NSData、NSNumber等类型)而不能直接存储自定义模型对象;

    我们拿NSData举例:

    /********** 写入plist文件 **********/
        // plist文件写入路径
        NSString *docPath1 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
        NSString *plistPath1 = [docPath1 stringByAppendingPathComponent:@"kingdev.plist"];
        
        // 构造二进制数据
        NSString *urlStr = @"http://pic.to8to.com/attch/day_160218/20160218_6410eaeeba9bc1b3e944xD5gKKhPEuEv.png";
        NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlStr]];
        
        // 写入本地 plist 文件
        if ([data writeToFile:plistPath1 atomically:YES]) {
            NSLog(@"write success.");
        } else {
            NSLog(@"write failure.");
        }
        
        /*********** 读取plist文件 **********/
        NSData *readData = [NSData dataWithContentsOfFile:plistPath1];
        UIImage *image = [UIImage imageWithData:readData];
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
        imageView.backgroundColor = [UIColor redColor];
        imageView.frame = CGRectMake(100, 100, 100, 100);
        [self.view addSubview:imageView];

    先查看我们的打印台:

    2016-04-07 18:42:50.259 学习数据库[9474:485024] write success.

    查看我们的沙盒:

    使用前提:该对象实现了 writeToFile方法,这样我们才能把对象写入 plist 文件。

    查看我们读取plsit效果:

  • 相关阅读:
    推送消息为什么使用RocketMQ,而不使用Kafka?
    com.google.common.collect.Lists.addAll()空指针原因分析
    AQS原理
    ReentrantLock-加锁
    ReentrantLock-自旋
    Reentrantlock-的核心内容
    java中,BigDecimal的add方法避坑指南
    Reentrantlock-实现原理
    Reentrantlock-适用场景
    JAVA foreach和普通for循环是否需要判断为null
  • 原文地址:https://www.cnblogs.com/xiu619544553/p/5367632.html
Copyright © 2011-2022 走看看