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效果: