10 2017 档案
摘要:谈一谈iOS事件的产生和传递 1.事件的产生 发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中. UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常,先发送事件给应用程序的主窗口(keyWindow)。 主窗口会在视图层次结构
阅读全文
摘要:每周一篇原创博客 时间: 2017年10月30日--2017年11月3日 iOS11适配的那些坑 01 适配titleView iOS11 navigationItem.titleView 适配问题,最近由于Apple 更新了iOS 11版本,在系统升级之后,发现项目中之前适配好的titleView
阅读全文
摘要:iOS11正式版出了这么久了,在忙完新版本开发,写下在iOS11上的一些小问题。 1 App图标不显示 现象:升级到iOS11系统下自己的项目桌面app图标不见了 出现这种情况我还以为自己手动删除了项目 Images.xcassets中的AppIcon导致没有图标。查看项目和发现这些AppIcon
阅读全文
摘要:iOS 版本更新(强制更新)检测问题 通常iOS系统中是默认设置再wifi状态,且网络状况良好下自己更新应用的. 但是如果用户设置了不自动更新,但是我们的APP出现重要的版本,一定需要用户更新的情况下,就会需要这个功能了. 这个版本更新一般会有两种方式: 1.在自己的服务器上部署上一个文件,写入版本
阅读全文
摘要:RxSwift之路 2#如何开始 第一步当然是把项目clone到本地,github地址:https://github.com/ReactiveX/RxSwift。 官方文档 学习的第一手资源当然是项目提供的文档。在项目的Document目录下放着项目的一些概念说明。看过项目的ReadMe后可以从 G
阅读全文
摘要:Swift 4迁移总结:喜忧参半,新的起点 每日一篇优秀博文 这次Swift 3 到 4 的迁移代码要改动的地方比较少,花了一个下午的时间就完成了迁移。Swift 把原来 4.0 的目标从 ABI 稳定改为了源码兼容,此次代码的兼容性做的确实很好,这个目标算是达到了。然而对于一个成熟的项目而言,单纯
阅读全文
摘要:深入研究 Runloop 与线程保活 在讨论 runloop 相关的文章,以及分析 AFNetworking(2.x) 源码的文章中,我们经常会看到关于利用 runloop 进行线程保活的分析,但如果不求甚解的话,极有可能因此学会了一个错误的用法,本文就来分析一下其中常见的误区。 我提供了一个 De
阅读全文
摘要:主线程中也不绝对安全的 UI 操作 从最初开始学习 iOS 的时候,我们就被告知 UI 操作一定要放在主线程进行。这是因为 UIKit 的方法不是线程安全的,保证线程安全需要极大的开销。那么问题来了,在主线程中进行 UI 操作一定是安全的么? 显然,答案是否定的! 在苹果的 MapKit 框架中,有
阅读全文
摘要:结合 category 工作原理分析 OC2.0 中的 runtime 绝大多数 iOS 开发者在学习 runtime 时都阅读过 runtime.h 文件中的这段代码: struct objc_class { Class isa OBJC_ISA_AVAILABILITY; #if !__OBJC
阅读全文
摘要:深入理解哈希表 这篇文章由一个简单的问题引出: 有两个字典,分别存有 100 条数据和 10000 条数据,如果用一个不存在的 key 去查找数据,在哪个字典中速度更快? 有些计算机常识的读者都会立刻回答: “一样快,底层都用了哈希表,查找的时间复杂度为 O(1)”。然而实际情况真的是这样么? 答案
阅读全文
摘要:每日一篇优秀博文 2017年10月10日 周二 为什么要用 Node.js 这是一个移动端工程师涉足前端和后端开发的学习笔记,如有错误或理解不到位的地方,万望指正。 Node.js 是什么 传统意义上的 JavaScript 运行在浏览器上,这是因为浏览器内核实际上分为两个部分:渲染引擎和 Java
阅读全文
摘要:每日一篇优秀博文 2017年10月9日 周一 移动端开发者眼中的前端开发流程变迁与前后端分离 写在最开始 这是一篇面向移动端开发者的科普性文章,从前端开发的最初流程开始,结合示范代码,讨论开发流程的演变过程,希望能覆盖一部分前端开发技术栈,从而对前端开发的相关概念形成初步的认识。 本文会提供一些示范
阅读全文
摘要:每日一篇优秀博文 2017年10月8日 周日 获取任意线程调用栈的那些事 BSBacktraceLogger 是一个轻量级的框架,可以获取任意线程的调用栈,开源在我的 GitHub,建议下载下来结合本文阅读。 我们知道 NSThread 有一个类方法 callstackSymbols 可以获取调用栈
阅读全文
摘要:每日一篇优秀博文 2017年10月7日 周六 白话 Ruby 与 DSL 以及在 iOS 开发中的运用 阅读本文不需要预先掌握 Ruby 与 DSL 相关的知识 何为 DSL DSL(Domain Specific Language) 翻译成中文就是:“领域特定语言”。首先,从定义就可以看出,DSL
阅读全文
摘要:李洪强和你一起学习前端之(11)梅兰商贸案例 今天的内容是梅兰商贸案例的讲解,这也是CSS的最后一天 今天要实现的效果是: 大家看到了,今天这个案例的内容非常的多,我们只能一点点的分析. 一点点的完成,因为如果内容结构琐碎,我们会感觉到很乱 要不断想着刚才的结构,一不留神就会重新理清之前的思路,这样
阅读全文
摘要:深入理解 iOS 开发中的锁 摘要 本文的目的不是介绍 iOS 中各种锁如何使用,一方面笔者没有大量的实战经验,另一方面这样的文章相当多,比如 iOS中保证线程安全的几种方式与性能对比、iOS 常见知识点(三):Lock。本文也不会详细介绍锁的具体实现原理,这会涉及到太多相关知识,笔者不敢误人子弟。
阅读全文
摘要:如何理解高阶函数 昨天开始读 SICP,这本书作为 MIT 所有理工科类学生的公共必修课(类似于咱们的高数),还是挺有价值的,很清楚的解释了一些基本概念,这里先总结一下高阶函数吧。 高阶函数的定义是接受一个函数作为参数,或者返回一个函数的函数。不过这样的解释作为总结也就罢了, 如果用来学习、理解的话
阅读全文
摘要:如何让 Xcode 在读写上提速100倍? 上个月参加了一场西雅图当地的线下 iOS 开发者聚会。Jeff Szuhay 作为一个有20+年开发经验的资深程序员,跟我讲了一套提高 iOS 开发效率的方法。相比于其他程序员在 App 启动时间、架构优化方面的经验,老爷子 Jeff 的优化基于硬件层面,
阅读全文
摘要:从强制解包看 Swift 的设计 不知道大家有没有发现,在一个 Objective-C 和 Swift 混编的 App 中,当把一个 OC 中的参数转到 Swift 时,Swift 会自动把这个变量进行强制解包。举个例子,我在 OC 中定义这样一个变量: @property (nonatomic,
阅读全文
摘要:Swift 开发中,为什么要远离 Heap? WWDC的视频 — Understanding Swift Performance 中,苹果上来就说,Heap 的操作复杂度要远远超越 Stack。所以大家在选择数据结构时,要尽量选择诸如结构体这种存储在 Stack 上的值数据类型,而不要选择像类这种存
阅读全文
摘要:对于iOS开发人工智能意味着什么? 前言 近几年来人工智能的话题那是炙手可热。在国内很多大佬言必谈机器学习和大数据;在美国刚毕业的人工智能 PHD 也是众人追捧,工资直逼 NFL 四分卫。人工智能甚至成为了互联网领域茶余饭后的话题 —— 仿佛不懂人工智能就是落伍了。 笔者作为一名 iOS 开发者,对
阅读全文
摘要:平凡是程序员的唯一答案吗(转载) 我在 Facebook 有一位好友。他本科国内 Top 2 大学毕业,在美国拿了最顶尖大学的硕士学位,然后年纪轻轻就做到了技术负责人,拿着超高的薪水。就是这么一个开了挂一般的天才,每个星期六晚上的夜里,他是永远是睡不着的。 我问他为什么失眠。他的回答是焦虑。 他说,
阅读全文