iOS学习笔记13-字典数据写入plist

以上为字典数据(图片)

首先求到应用程序包的路径

 NSBundle *bundle = [NSBundle mainBundle];

NSString *path = [bundle bundlePath];

然后将路径下所有的文件读出

NSFileManager *fm = [NSFileManager defaultManager];

NSArray *allFile = [fm contentsOfDirectoryAtPath:path

error:nil];

NSLog(@"%@",allFile);

找出有图片的文件,并加入数组

NSMutableArray *imgFiles = [[NSMutableArray alloc]init];

[allFile enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

//        NSLog(@"%@",obj);

NSString *file = (NSString *)obj;

if ([[file pathExtension] isEqualToString:@"jpg"]) {

NSString *appName = [file stringByDeletingPathExtension];//去掉扩展名

//将数据封装成为字典

NSDictionary *dic = @{@"appName":appName,@"appIcon":file};

//字典放到数组中

[imgFiles addObject:dic];

}

}];

得到文件的路径,并写入

NSArray *arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *document = arr[0];

NSLog(@"%@",document);

NSString *plistPath = [document stringByAppendingPathComponent:@"/imgStore.plist"];

NSFileManager *imgFileManager = [NSFileManager defaultManager];

[imgFileManager createFileAtPath:plistPath

contents:nil

attributes:nil];

BOOL r = [imgFiles writeToFile:plistPath atomically:YES];

if (r) {

NSLog(@"写入成功....");

}

时间: 2024-10-06 22:08:05

iOS学习笔记13-字典数据写入plist的相关文章

iOS 学习笔记——0005(数据存储)

先发一个练手的小demo,自己写的简略通讯录,已上传至github https://github.com/liaoshaolim/addressBook 1.NSKeyedArchiver:(归档) 这里用一个添加联系人的例子来说明: 注意:归档形式保存数据,需要该对象遵守NSCoding协议,而且对应的必须提供encodeWithCoder和initWithCoder方法 因为归档是一次性的,解压也是一次性的,所以小量的ok,如果量大的话,改一个小地方就要归档或解压全部,效率会比较低 //用一

IOS学习笔记 -- Segue、数据存储、UITabBarController

一. Segue1.Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue)每一个Segue对象,都有3个属性1>.唯一标识: @property (nonatomic, readonly) NSString *identifier;2>.来源控制器: @property (nonatomic, readonly) id sourceViewController;3>.目标控制器: @property (nonatomic, read

IOS 学习笔记 2015-04-15 控制器数据反向传值

// // FirstViewController.h // 控制器数据传递 // // Created by wangtouwang on 15/4/15. // Copyright (c) 2015年 wangtouwang. All rights reserved. // #import <UIKit/UIKit.h> @interface FirstViewController : UIViewController @end // // FirstViewController.m //

IOS 学习笔记 2015-04-09 0C-SQLite 数据存储

1 项目导入 libsqlite3.0.dylib 框架 2 在使用数据sqlite的头文件(.h)上导入 #Impourt <sqlite3.h> 3 推荐自己本地电脑下个sqlite Manager 管理软件类似的 下面上代码 // // ViewController.m // SQLiteDemo // // Created by wangtouwang on 15/4/9. // Copyright (c) 2015年 wangtouwang. All rights reserved.

ios学习笔记——数据持久化

一.沙盒 沙盒目录是一种数据安全策略,很多系统都采用沙盒设计. 沙盒目录设计的原理就是只能允许自己的应用程序访问目录,而不允许其他的应用访问. 1.Documents目录:该目录用于存储非常大的文件或非常频繁更新的数据,能够进行iTunes或iCloud的备份,获取目录位置的代码如下: 1 NSString * pathArr = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) la

iOS学习笔记-精华整理

iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始等待用户的操作,自动释放池就会被释放掉(调用dealloc),池中的对象都会收到一个release,有可能会因此被销毁. 2-成员属性:     readonly:不指定readonly,默认合成getter和setter方法.外界毫不关心的成员,则不要设置任何属性,这样封装能增加代码的独立性和安全

iOS学习笔记16-数据库SQLite

一.数据库 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等.离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式: 1. 归档:NSKeyedArchiver 2. 偏好设置:NSUserDefaults 3. plist存储:writeToFile 上述的使用可以参考iOS学习笔记15-序列化.偏好设置和归档,但上述三种方法都有一个致命的缺点,那就是都无法存储大批量的数据,有性能的问题,在这个时候就是使用数据库的时候. 数据库(Database)是按照数据结构来组

IOS学习笔记-- SQLite的应用

1 // 2 // HMViewController.m 3 // 02-SQLite的应用 4 // 5 // Created by apple on 14-7-24. 6 // Copyright (c) 2014年 heima. All rights reserved. 7 // 8 9 #import "HMViewController.h" 10 #import <sqlite3.h> 11 12 @interface HMViewController () 13

IOS学习笔记 -- 多线程

多线程1.多线程的原理 1>.同一时间,CPU只能处理1条线程,只有1条线程在工作(执行) 2>.多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换) 3>.如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象如果线程非常非常多,会发生: 1>.CPU会在N多线程之间调度,CPU会累死,消耗大量的CPU资源 2>.每条线程被调度执行的频次会降低(线程的执行效率降低) 2.多线程的优缺点 1>.多线程的优点 能适当提高程序的执行效率 能适当提高资源