最近要从0开始学ios 开发,可以说又回到了过去三年前的状态。学一样东西真是需要坚持。对于ios网上资料很多,成熟的社区cocochina 和开源的第三方github 都很丰富,对于后来者选择上有更多的帮助意义。
今天开始学习了Plst文件的创建和写入,里面涉及到一些关于NSFileManager 等一些用法,这些属于文件操作范畴。在学习过程又会和NSFileHandle 和NSBundle 打交道。
NSFileManager提供的 功能会更加强大一些 ,包括如何处理目录 创建 删除等的API,NSFileHandle则 提供了文件的操作API 与NSFileManager 有一些区别 ,NSFileHandlerI没有提供类似NSFileManager 类似的创建文件的功能,而 NSBundle 会涉及到一些应用包文件操作提供的API。
这里也会涉及到一些常用IOS目录:如
Documents (NSDocumentDirectory)
Library/Caches (NSCachesDirectory)
tmp (NSTemporaryDircory)
LibraryPreferences (NSUserDefaults)
等
好进入了下面的过程,为了创建一个路径会先了解这些涉及路径的API。
(1)打开xcode 创建Command line 的命令行 创建一个工程
(2)拼凑一个文件为test.plist文件,并组装这个路径。
(3)使用NSDictionary的 方法去检索文件是否存在。如果不存在则使用NSFileManager 去进行创建。
(4)写入数据到plist文件。
当文件创建后,你通过finder 我找到我们的文件是否存在 。 通过 User/用户名/文稿/test.plst打开这里就看是否创建了这个 文件。这里因为是中文Mac命名。( 用户名就是你mac 机器的的用户名,文稿就是document 文档意思)
打开发现,该文件夹多了一个test.plist的文件。
注意:Foundation 框架里面为我们提供了一个查找系统目录的函数,NSSearchPathForDirectoriesInDomains 有了它你就可以查询到系统里面应用和文档的目录
再次操作打开这个文件,发现里面的数据已经生成。说明这个文件已经被创建和成功写入了。为了检索文件内容,使用NSDictionary 去检索一下看是否存在。如果存在则说明这个过程是对了。
好。今天笔记记录到此为止。明天继续努力,为学习新技术努力。
</pre><p></p><p><img src="http://img.blog.csdn.net/20150415112100542" alt="" /></p><p></p><p></p><pre code_snippet_id="644342" snippet_file_name="blog_20150415_2_2007118" name="code" class="objc">#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); //创建和读取plist 文件 NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *path = [array objectAtIndex:0]; NSString *filePath =[path stringByAppendingPathComponent:@"test.plist"]; NSLog(@"%@",filePath);//打印目录 NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:filePath]; if(dic == nil) { //创建文件 NSFileManager *fm = [NSFileManager defaultManager]; [fm createFileAtPath:filePath contents:nil attributes:nil]; NSDictionary *dicData = [NSDictionary dictionaryWithObjectsAndKeys:@"liming",@"name",@"12",@"age", nil]; [dicData writeToFile:filePath atomically:YES]; } else { NSDictionary *key = [dic objectForKey:@"name"]; NSLog(@"%@",key); NSLog(@"%@",dic); } } return 0; }