![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IOS小记
文章平均质量分 72
关耳佳
love coding,love life...
展开
-
WKWebView的使用
iOS8 以前我们是通过UIWebView加载网页的,但是通过UIWebView网页加载一直存在不少问题:加载速度慢,占用内存多,优化困难等;iOS8以后,苹果推出了WebKit新框架,可以通过新的UI组件WKWebView来替代原来的UIWebView,新推出的WKWebView速度更快了,占用内存少了,妈妈再也不用担心我们家在网页了!WKWebView 有两个代理:一个WKNavi原创 2015-05-05 20:54:35 · 1353 阅读 · 0 评论 -
iOS-工厂方法模式的运用
原文发布在个人简书,更多内容欢迎关注笔者简书 ,评论、互相交流请到简书,谢谢!设计模式这个高大上的词似乎每天都在听。设计模式在服务端设计时体现的比较明显。虽然移动端设计模式没有服务端那么明显,但是做为移动端开发人员掌握各种设计模式的思想有助于提高代码质量。今天先聊聊工厂方法模式在iOS端的实际运用。后续通过其他篇幅再聊其他的设计模式。 一些设计模式书籍里都是这样描述工厂方法模式: 定义创建对象原创 2017-10-24 13:05:44 · 3251 阅读 · 1 评论 -
iOS离线缓存架构设计方案
原文发布在个人简书,更多内容欢迎关注笔者简书 ,评论、互相交流请到简书,谢谢!现在许多主流的App都会做离线缓存功能,比如“今日头条”,“新浪微博”,每次启动项目或者刷新有网络时都是获取网络数据,网络出错时会展示缓存数据提高用户体验。笔者就结合之前见过的、以及笔者自己做缓存的方式,谈一谈离线缓存的实现方案以及其中的优缺点。“今日头条”,“新浪微博”都是缓存了第一页的数据,笔者这里也是这样。无demo原创 2017-10-09 11:20:01 · 4094 阅读 · 0 评论 -
iOS组件化-带你一步步实现项目的组件化
组件化在业界已经炒的水深火热,关于组件化的好处和组件化的方案网上已经有大篇的文章了。笔者通过拆分一个现有的demo来简单聊一下项目实施组件化的过程(将分为上、中、下三篇)。demo可以从github下载(下载之后执行pod install )《iOS组件化(上篇)- 拆分基础组件》 《iOS组件化(中篇)-拆分业务组件》《iOS组件化(下篇)-加载XIB、图原创 2017-09-19 08:23:09 · 19516 阅读 · 0 评论 -
iOS一键搞定自动打包并发布到AppStore和Fir
日常编译打包工作主要是以下两个目的:提交测试版本ipa给测试人员 配置好测试描述文件,然后Product -> Archive编译打包,选择Organizer,导出ad hoc 的 ipa 包。再上传到Fir等第三方平台上,然后通知测试同事进行测试。整个流程下来需要人工监守操作比较耗费时间。提交ipa包到App Store已供审核原创 2017-09-25 11:55:53 · 17252 阅读 · 5 评论 -
LLDB调试神器之Chisel的安装
最近看到好多人在安装chisel的时候遇到各种问题安装不上,按照github的提示,查看了一些资料还是不行。因此写一下自己当时安装chisel时遇到的问题。希望对大家有所帮助。关于chisel命令的使用网上有一堆文章,所以这里我只说一下安装时容易遇到的问题。打开chisel在github的地址,官方提示通过下面的命令进行安装。brew update (如果brew是最新的直原创 2016-11-02 14:37:51 · 2793 阅读 · 0 评论 -
iOS-位移枚举
枚举&位移枚举之前,我们一般都采用C语言的方式定义枚举,这种枚举可以称为普通的枚举。typedef enum{ DirectionTypeUp, DirectionTypeLeft, DirectionTypeDown, DirectionTypeRight} DirectionType;但是我们在查看苹果的SDK或者看一些第三方库时会原创 2015-05-22 10:09:06 · 3429 阅读 · 0 评论 -
GCD高级用法-Dispatch I/O
在读取较大文件时,如果将文件分成合适的大小并使用Global Dispatch Queue 并发读取的话,应该会比一般的读取速度快不少。现在的输入/输出硬件已经可以做到一次使用多个线程更快地并发读取了。能实现这一功能的就是Dispatch I/O 和Dispatch Data。通过Dispatch I/O读写文件时,使用Global Dispatch Queue将1个文件按某个原创 2015-05-22 23:16:39 · 4634 阅读 · 0 评论 -
GCD高级用法-信号量
GCD中的信号量是指 Dispatch Semaphore。所谓信号,类似于道路上的信号灯,一种用来标识等待还是通过的标志。绿灯通过,红灯等待。道路中通过信号灯的颜色标识通过和等待,而Dispatch Semaphore中通过“计数”来标识通过和等待。GCD的Dispatch Semaphore提供了三个函数操作Semaphore: dispatch_semaphor原创 2015-05-22 11:25:38 · 6560 阅读 · 1 评论 -
inline内联函数
一、内联函数 :内联函数是指用inline关键字修饰的函数它与普通函数所不同之处只在于函数调用的处理。普通函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;内联函数不是在调用时发生执行权转移,而是在编译时将“函数体”嵌入在每一个调用处。编译时类似宏替换,使用函数体替换调用处的函数名。调用几次就替换几次,这样省去了函数调用时的一些额外开销,比如保存和恢复函数返回地址等,原创 2015-05-22 22:20:54 · 1544 阅读 · 0 评论 -
typedef的标准用法
很多资料对typedef的定义感觉都不是很准确,下面大概说下自己的理解。int num;上面代码的意思是:声明了一个int 类型的变量num。typedef int num;没有typedef的时候,int num;num代表的是一个int类型的变量,而加上typedef声明之后,num代表的就是类型了。typedef int num;num n1,n2;上面的代码的意思原创 2015-05-15 17:10:57 · 922 阅读 · 0 评论 -
Socket协议和"心跳"机制
我们知道网络的3要素:主机地址(也就是常说的ip地址)、端口号(做过服务器开发的童鞋都知道,80、8080...)、传输协议。通过ip地址可以找到对应的主机,通过端口号可以找到主机上对应的程序,通过传输协议可以确定网络间是如何传入数据的...原创 2015-05-10 21:05:32 · 5475 阅读 · 1 评论 -
Runtime之对象、类(类对象)、元类
在C++/Java/C#/OC等众多面向对象语言,它们都有着面相对象一些共有的特性,但是也都有各自的一些区别。今天我们就从运行时底层来剖析一下OC的特性。先说说OC中的类Person *person = [Person new];Dog *dog = [Dog new];Class class1 = [person class];Class class2 = [do原创 2015-05-15 15:13:46 · 3211 阅读 · 0 评论 -
Runtime之Ivar\Property\Method
我们打开一个类(Class),这类无非就是包含:成员变量(Ivar)、属性(Property)、方法(Method)三部分.我们可以通过Runtime底层可以获取到任意一个类Ivar,Property、Method,那应该如何获取那?原创 2015-05-11 20:35:47 · 581 阅读 · 0 评论 -
iOS 静态库(静态库依赖、三方依赖、资源处理等)
### 目录一、 基本概念 1. 静态库动态库区别 2. 库的版本 3. iOS 设备的CPU架构 4. ARM处理器指令集 5. i386|x86_64 指令集 6. Xcode中指令集相关选项二、打包framewor静态库 1. 创建项目-》创建静态库项目 2. 静态库如何开发调试? 3. 脚本合...原创 2019-01-14 20:20:50 · 5703 阅读 · 0 评论