iOS 静态库(静态库依赖、三方依赖、资源处理等) ### 目录一、 基本概念 1. 静态库动态库区别 2. 库的版本 3. iOS 设备的CPU架构 4. ARM处理器指令集 5. i386|x86_64 指令集 6. Xcode中指令集相关选项二、打包framewor静态库 1. 创建项目-》创建静态库项目 2. 静态库如何开发调试? 3. 脚本合...
iOS-工厂方法模式的运用 原文发布在个人简书,更多内容欢迎关注笔者简书 ,评论、互相交流请到简书,谢谢!设计模式这个高大上的词似乎每天都在听。设计模式在服务端设计时体现的比较明显。虽然移动端设计模式没有服务端那么明显,但是做为移动端开发人员掌握各种设计模式的思想有助于提高代码质量。今天先聊聊工厂方法模式在iOS端的实际运用。后续通过其他篇幅再聊其他的设计模式。 一些设计模式书籍里都是这样描述工厂方法模式: 定义创建对象
iOS离线缓存架构设计方案 原文发布在个人简书,更多内容欢迎关注笔者简书 ,评论、互相交流请到简书,谢谢!现在许多主流的App都会做离线缓存功能,比如“今日头条”,“新浪微博”,每次启动项目或者刷新有网络时都是获取网络数据,网络出错时会展示缓存数据提高用户体验。笔者就结合之前见过的、以及笔者自己做缓存的方式,谈一谈离线缓存的实现方案以及其中的优缺点。“今日头条”,“新浪微博”都是缓存了第一页的数据,笔者这里也是这样。无demo
iOS一键搞定自动打包并发布到AppStore和Fir 日常编译打包工作主要是以下两个目的:提交测试版本ipa给测试人员 配置好测试描述文件,然后Product -> Archive编译打包,选择Organizer,导出ad hoc 的 ipa 包。再上传到Fir等第三方平台上,然后通知测试同事进行测试。整个流程下来需要人工监守操作比较耗费时间。提交ipa包到App Store已供审核
iOS组件化-带你一步步实现项目的组件化 组件化在业界已经炒的水深火热,关于组件化的好处和组件化的方案网上已经有大篇的文章了。笔者通过拆分一个现有的demo来简单聊一下项目实施组件化的过程(将分为上、中、下三篇)。demo可以从github下载(下载之后执行pod install )《iOS组件化(上篇)- 拆分基础组件》 《iOS组件化(中篇)-拆分业务组件》《iOS组件化(下篇)-加载XIB、图
LLDB调试神器之Chisel的安装 最近看到好多人在安装chisel的时候遇到各种问题安装不上,按照github的提示,查看了一些资料还是不行。因此写一下自己当时安装chisel时遇到的问题。希望对大家有所帮助。关于chisel命令的使用网上有一堆文章,所以这里我只说一下安装时容易遇到的问题。打开chisel在github的地址,官方提示通过下面的命令进行安装。brew update (如果brew是最新的直
SAE-上传本地图片到SAE的Storage(php版) 新浪的SAE处于安全期间,不支持直接将本地文件上传的SAE。 也就是无法通过选择文件按钮选择本地的文件,点击提交之后,文件不能成功提交到SAE云服务器的,那怎么办哪??需要通过SAE提供的Storage来实现,通过Sotrage的API接口将本地文件上传的SAE的Storage,然后再通过访问Storage里的文件来实现这一效果!!下面通过图片来一步步解说:1. 打
HTML5本地存储-localStorage和sessionStorage HTML5WebStorage本地存储WebStorage是用来实现客户端存储数据,大家都知道之前的Cookie就是客户端存储的一种方式,今天看一看html5新增的本地存储方式:localStorage和sessionStorage。localStorage:存储的数据会一直存在本地客户端,即使浏览器关闭了也会存在;sessionStorage: 只是针对同一个 session
html5拖拽-初探 闲来无事,对html5的drag-drop拖放进行了下小测试,完成拖放的过程主要是由draggable属性、ondragstart 事件、dataTransfer.setData() 方法、Ondragover 事件 、ondrop事件和dataTransfer.getData() 方法 来完成,文章中详细的说明这些属性和事件是怎么完成拖放。
JS事件-鼠标滚轮事件 之前学习了onmouseover,onmousedown等鼠标事件,今天来看看鼠标的滚轮事件,浏览器兼容一直是让人比较恶心的事情,今天就让我们将恶心进行到底,看看这个恶心的鼠标滚轮事件! 鼠标滚轮事件在IE和谷歌浏览器Chrome下是通过onmousewheel这个事件实现的,但是火狐FF下却不识别onmousewheel,在FF下需要用DOMMouseScroll,并且必须用“事件监听”
JS-自定义滚动条的几个实例 首先要说的就是:怎么实现一个自定义的滚动条主要步骤:1. 定义两个div,一大一小,让小div在大div上滚动2. 利用拖拽原理使小div可以滚动,这里拖拽的时候,只是改变小div的left值;3. 限制小div的滚动范围 #parent{ width: 400px;height: 30px;background
JS-碰撞检测 一个简单的碰撞检测例子,检测div1是否和div2发生碰撞,当div1碰到div2时,改变div2的颜色,看测试图看一下分析图:当div1在div2的上边线(t2)以上的区域活动时,始终碰不上当div1在div2的右边线(r2)以右的区域活动时,始终碰不上当div1在div2的下边线(b2)以下的区域活动时,始终碰不上当div1在div2的左边线(r2)以左
JS-闭包详解 闭包是JS中的一块硬骨头-不好啃,需要我们慢慢去咀嚼才能体会出其中的味道,嚼的不好,一不小心还容易崩牙!今天就让我们好好来咀嚼下这块硬骨头把!!!1.什么是闭包?所谓闭包:在一个函数作用域中 保留 它上级作用域的局部变量,这些局部变量不会随着上级函数的执行完毕而被销毁(个人理解)。简单的理解闭包:子函数可以使用父函数的局部变量(包括参数,因为参数也是局部变量); function
JS-那些年困扰我的offsetT/L/W/H和scrollT/L/W/H...... 学习过js的人,相信都曾经被这堆东西困扰:clientWidth,clientHeight,clientX,clientY,offsetX.offsetY ,offsetLeft,offsetTop ,offsetWidth,offsetHeight,scrollTop,scrollLeft 等等,看着这堆东西就开始犯晕呕吐。他们到底是干嘛滴那?今天就来让我们彻底击碎这群玩意,
JS运动-放大缩小物体(从中心) 先来看下效果:要点:1. 将css的float定位,转换成用js的绝对定位2. 从中心放大缩小物体 主要步骤:1. 先通过css的float定位,ul宽度设置成li宽的倍数(例子中li的宽是122,没行显示3 个li,所以ul宽设置 成366)2. 利用js 获取并且设置他们初始的left 和top值3. ul 的position:
GCD高级用法-Dispatch I/O 在读取较大文件时,如果将文件分成合适的大小并使用Global Dispatch Queue 并发读取的话,应该会比一般的读取速度快不少。现在的输入/输出硬件已经可以做到一次使用多个线程更快地并发读取了。能实现这一功能的就是Dispatch I/O 和Dispatch Data。通过Dispatch I/O读写文件时,使用Global Dispatch Queue将1个文件按某个
inline内联函数 一、内联函数 :内联函数是指用inline关键字修饰的函数它与普通函数所不同之处只在于函数调用的处理。普通函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;内联函数不是在调用时发生执行权转移,而是在编译时将“函数体”嵌入在每一个调用处。编译时类似宏替换,使用函数体替换调用处的函数名。调用几次就替换几次,这样省去了函数调用时的一些额外开销,比如保存和恢复函数返回地址等,
GCD高级用法-信号量 GCD中的信号量是指 Dispatch Semaphore。所谓信号,类似于道路上的信号灯,一种用来标识等待还是通过的标志。绿灯通过,红灯等待。道路中通过信号灯的颜色标识通过和等待,而Dispatch Semaphore中通过“计数”来标识通过和等待。GCD的Dispatch Semaphore提供了三个函数操作Semaphore: dispatch_semaphor
JS拖拽(改变物体大小) 拖拽改变物体大小功能:拖拽黄色小div来改变绿色大div的宽和高 主要实现由三大步:1. 通过id获取到大小两个div2. 给小div添加onmousedown事件3. 在onmousedown事件给document添加onmousemove和onmouseup事件 由分析图可知,我们只需要在拖拽的时候,获取到物体不断增加的宽度值,问题就解决了