带告世目录版 纸生
来看看最终效果:
自定义模板一共有两种类型,一种是自定义项目模板,一种是自定义文件模板。很明显项目模板就是我们在新建项目的时候会用到,而文件模板是在新建文件的时候用到。如果你没有做任何自定义的,那所有的项目及文件都是用的系统模板。
系统模板路径
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/
打开这个路径就会看到有两个文件夹一个是 File Templates 存储系统文件模板的,一个是 Project Templates 存储系统项目模板的。
我们自定义的模板不应该放在系统模板下,应该放在 ~/Library/Developer/Xcode/Templates/ 。打开目录同样有两个和上面名字一样的文件夹。
这个配置文件在每一个具体的模板路径下都会有,它是一个最为基础的配置文件。当我们通过Xcode创建新的文件或者项目的时候,Xcode会首先读取这个文件来配置。每一TemplateInfo.plist都有一个标识用来区别其他模板。所有在我们自定义模板的时候需要给自己的模板取个名字,举个例子,系统为iPhone应用内置的模板标识如下:
com.apple.dt.unit.windowBasedApplication
除了这些,TemplateInfo.plist这个文件还有一点需要我们注意,那就是它可以像类一样实现继承。如下图:
看不懂也没关系,这点不影响我们自定义。只要知道需要用到文件继承来做就可以了。 TemplateInfo继承的关系一般也是在自定义项目的时候用到 。来看看下面这种图:
0)
左边是自定义的继承层次,右边是系统继承层次。完全按照系统的样子弄就可以了。
这是个图标文件,也就是当我们在xcode新建文件或者项目的时候看到的图标而已。
其他的就是我们自定义文件或者项目的额具体内容了。具体目录如下:
自定义文件模板,在实际开发中用到的地方并不是很多。这里也提一提把。比如对于经常写开源项目的同学来说,每次写完正规一点都需要配上相应的开源协议,比如常见的袜纳肢MIT,BSD等。每个文件都手动复制一下如下内容还是挺麻烦的。
所以如果有一个文件模板能够直接在创建文件的时候就自动加上了这些协议那是极好的。
TemplateInfo.plist可以通过xcode来创建,也可以直接copy系统模板里面的,我是copy系统模板的,然后改里面的值就可以了。可能有些key不知道什么意思,方法一是看系统模板里面的TemplateInfo.plist设置和我们通过系统模板创建出来的文件作对比来分析具体key的作用,方法二就是去google吧。
自定义项目模板才是实际开发中最需要的。相比于自定义文件模板稍微浮躁一点点,茄轿因为需要用到TemplateInfo.plist继承关系。
因为系统没有提供创建一个空项目的模板,所以我们就用这个来试一试。
虽然是一个空项目但是还是需要使用前面讲的TemplateInfo.plist继承关系。直接新建一个TemplateInfo.plist文件,或者copy系统模板的然后改一下。
通过这样就可以创建一个空项目了。
光是上面这种例子肯定是最简单的。
文件夹里面的东西和系统目标差不多。
主要看看TemplateInfo.plist里面的配置
大家可以按照这种设置去做自己的自定义。
可能上面讲的对于没有弄过项目模板的同学来说有点难掌握。主要是配置文件里面的key不知道什么意思不知道怎么设置。针对这种情况我建议
iOS开发,plist文件读写那些事 - (jianshu.com)
NSUserDefaults存储轻量级 的本地数据 ,比如要保存一个登陆界面的数据,用户名卜谈、密码之类的。
支持的数据类型有 NSString、 NSNumber、NSInteger、NSFloat、BOOL、NSArray、NSDictionary、NSDate、 等系统定义的数据类型。
用NSUserDefaults存储的数据下次程序运行的时稿弊斗候依然存在 .它的数据存储在应用程序内置的一个plist文件里, 在/Library/Prefereces沙盒路径下.
NSUserDefaults是定时把缓存中的数据写入磁盘的,而不是即时写入,为了防止在写完NSUserDefaults后程序退出导致的数据丢失,可以在写入数据后使用synchronize强制立即将数据写入磁盘:
使用NSKeyedArchiver 对数据进行 归档 反归键磨档(将自定义类型转换为NSData类型:)
NSuserDefaults 的坑
iOS 最终,我还是决定放弃使用NSUserDefaults了 - (jianshu.io)
归档: ,就是将数据写到一个文件里面去。一般我们的应用的变量常量之类的数据都是在内存里面的,只要APP关闭,这些数据都会丢失。但是把数据存储到文件里面去,就能将数据保存到本地磁盘里面(目前iOS基本就是在沙盒里面 *** 作了),不管是APP关闭还是重启设备,下次启动APP的时候都能够读出来。
解档: (别人也叫反归档),就是将数据从文件里面读取出来。在程序里面使用。
【iOS】数据持久化:使用NSKeyedArchiver进行数据归档 - (jianshu.com)
iOS 开发Core Data使用方法 – 技术狗 (jishudog.com)
IOS 开发文件 *** 作——NSFileManager - 星语海蓝 - 博客园 (cnblogs.com)
(15条消息) iOS文件 *** 作_你有故事,我囿酒-CSDN博客
参考:
iOS开发 - 关于 NSUserDefaults 的使用 - (jianshu.com)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)