不积跬步,无以至千里;不积小流,无以成江海。——荀子
[TOC]
2017-04-17
一、项目中UIWebView相关代码优化
为了解决程序使用UIWebView消耗过多内存,又不得不使用UIWebView来适配iOS7,采用了一个根据系统版本自动选择使用UIWebView和WKWebView的轮子 HXWebView 使用起来很方便,只需要将原来代码中的UIWebView替换成HXWebView即可。在使用该轮子的过程中发现有点逻辑问题,修改后的代码见:HXWebView
2017-04-18
一、Xcode自定义模板
可以通过修改Xcode中已有的代码模板来方便快捷地创建代码。
2017-04-19
今天和老婆一起开开心心去拍了一天的婚纱照😏😏😏,满满的一天折腾下来着实很累啊。要配合摄影师摆出各种pose,还要一直保持微笑,现在感觉都不会再笑了。
2017-04-20 ~ 2017-04-21
在工作中有时候在配合测试或者真机调试的时候需要打印一些log来定位bug,但是苦于真机测试的时候很难实时看到我们程序打印输出的日志,比如当前加载的网页的完整链接地址,比如推送必须在真机上测试但是需要调试查看推送内容等等。一直以来都想做一个可以实时查看程序输出内容又不影响程序正常运行的工具。曾经在调试推送的时候曾经在主页面做了一个按钮,点击按钮后把推送内容给展示出来,通过推送内容来写接受推送的处理代码逻辑。后来发现已经有人造出了这种强大的工具:iOS调试和开发神器-FLEX但是这个轮子感觉又太大,有时候我们只需要简单的适合自己需求的轮子。今天看到这个文章:iOS10 Log调试小工具后打算做一个类似的简单的查看日志的工具,顺带学习下文件的操作知识。
知识点总结:
一、NSFileHandle
NSString、NSArrary和NSDictionary都有写入文件的writeToFile方法,但是它们都是从文件开头出写入并且是覆盖式的写入。而NSFileHandle可以更加方便地读写操作文件流,比如在指定位置写入文件流、删除到指定位置处的文件流。在这里的简单用法:
//打开一个文件准备更新(读取或写入)
NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:[self logFilePath]];
//将文件指针的当前位置(偏移量)放在文件末尾处
[fileHandle seekToEndOfFile];
//在文件指针的当前位置写入,写入完成后文件指针的当前位置自动更新
[fileHandle writeData:[content dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];//关闭文件
更多有关NSFileHandle的用法参考:NSFileHandle操作文件内容
二、UIDocumentInteractionController
iOS中的沙盒可以让平台更加的安全,这也是沙盒给用户带来的最主要好处。不过由于沙盒的严格限制,导致程序之间共享数据比较麻烦。一般在程序间共享文档可以通过UIDocumentInteractionController类实现通讯。它支持在你的app中用其他app预览和显示文档。同时也支持文件关联,允许其他app通过你的程序打开文件。这些技术包括了UIKit中提供的UIDocumentInteractionController类(UIDocumentInteractionController Class Reference),以及Quick Look框架(Quick Look Framework Reference)。
参考:
在这里只是实现了利用UIDocumentInteractionController来预览日志文件(txt文件)。
目前遇到的问题:
- UIDocumentInteractionController预览txt文件的时候中文显示乱码问题。
- 未实现程序间文档共享,配置了info.plist文件,但是一直没有效果。
后续研究后补充。