[置顶] 博客iOS部分目录-方便快速查找

前言 在这里,你或许能找到你想要的关于IOS问题的答案。 所有的链接都是我自己写的文章,这个目录每个月更新一次(我每个月正常情况下更新15篇)2D绘图 iOS 2D绘图详解(Quartz 2D)之概述 iOS 2D绘图详解(Quartz 2D)之路径(点,直线,虚线,曲线,圆弧,椭圆,矩形) iOS 2D绘图详解(Quartz 2D)之路径(stroke,fill,clip,subpa...
阅读(3836) 评论(1)

聊聊SQLite - 基础篇

SQLiteSQLite是一个关系型数据库,是一个嵌入式的数据库,它的核心代码由C编写,直接在宿主应用中运行。本来想一篇长文章涵盖想写的内容,最后发现想写的东西太多了,就拆分成:基础篇,原理篇和iOS应用篇发出来吧。MAC OS的命令行字带SQLite。以下示例均在命令行中进行,C API的使用会在之后的文章里讲解:表 在关系型数据库中,表是一组相关数据的集合,它包括行和列。 命令行新建一个数据...
阅读(20) 评论(0)

Moya的设计之道

前言 Moya是一个基于Alamofire开发的,轻量级的Swift网络层。Moya的可扩展性非常强,可以方便的RXSwift,PromiseKit和ObjectMapper结合。 如果你的项目刚刚搭建,并且是纯Swift的,非常推荐以Moya为核心去搭建你的网络层。另外,如果你对Alamofire的源码感兴趣,推荐我之前的一篇博客: Alamofire的设计之道 Moya除了依赖Alamof...
阅读(582) 评论(2)

实现60fps的网易云音乐首页

前言网易云音乐是一款很优秀的音乐软件,我也是它的忠实用户。最近在研究如何更好的开发TableView,接着我写了一个Model驱动的小框架 - MDTable。为了去验证框架的可用性,我选择了网易云音乐的首页来作为Demo,语言是Swift 3。本文的内容包括: 实现网易云音乐首页的思路 如何建立一个轻量级的UITableViewController(不到100行) 性能瓶颈原因以分析及如何优化到接...
阅读(1196) 评论(3)

理解网络分层与数据加密

网络分层网络的基础分层是OSI的七层架构: OSI的全称是Open System Interconnection(开放系统互联模型),是由国际标准化组织ISO设计,解决不同体系结构网络互相连接的问题。 实际应用中,五层架构是最常见的,也是最容易理解的:网络分层后,每一层都工作着不同的协议和实际的物理设备,下一层为上一层提供服务,上层的实现无需考虑下层的细节,相同层级之间进行相互通信。物理层...
阅读(238) 评论(0)

优雅的开发TableView

前言UITableView(UITableViewController)是iOS开发使用频率最高的一个组件。不管是使用UITableView还是还是UITableViewController,在开发的时候,我们都需要实现两个协议: UITableViewControllerDataSource UITableViewControllerDelegate 这两个协议的代码不是写在Controller里...
阅读(795) 评论(2)

MVVM与Controller瘦身实践

前言MVC是一个做iOS开发都知道的设计模式,也是Apple官方推荐的设计模式。实际上,Cocoa Touch就是按照MVC来设计的。这里,我们先不讲MVC是什么,我们先来谈谈软件设计的一些原则或者说理念。在开发App的时候,我们的基本目标有以下几点: 可靠性 - App的功能能够正常使用 健壮性 - 在用户非正常使用的时候,app也能够正常反应,不要崩溃 效率性 - 启动时间,耗电,流量,界面反应...
阅读(3997) 评论(2)

Alamofire的设计之道

前言:Alamofire是一个由Swift编写的优雅的网络开发框架。大部分用Swift编写的iOS App的网络模块都是基于Alamofire的。作为Swift社区最活跃的几个项目之一,有许多开发者在不断的对其进行完善,所以学习这种优秀的开源代码对深入理解Swift的特性很有帮助。...
阅读(3863) 评论(3)

消息转发机制与Aspects源码解析

前言最近在搞重构相关的事情,遇到了不少这样的场景: 进入一个界面,在viewWillAppear:的时候做相应判断,如果满足条件则执行对应代码。 这类业务有一个特点,业务内容是对应整个App的,与对应的ViewController毛关系都没有,但是却不得不耦合到(即使是调用代码可以精简到一行)ViewController中。我们都知道,这种类似的业务用AOP(面向切片编程)来做十分适合,所谓面向...
阅读(1877) 评论(0)

Objective C block背后的黑魔法

前言block在Objective C开发中应用非常广泛,我们知道block会捕获外部对象,也知道使用block要防止循环引用。那么block这套机制在Objective C中是如何实现的呢?本文通过从C/C++到汇编层面分析block的实现原理。Clangclang是XCode的编译器前端,编译器前端负责语法分析,语义分析,生成中间代码(intermediate representation )。...
阅读(3892) 评论(2)

深入理解Objective C的ARC机制

从Runtime源码和汇编的角度深入挖掘ARC的本质...
阅读(1922) 评论(1)

iOS 10越狱和Reveal 8分析三方App UI框架教程

前言这是一篇写给开发者的博客,如果碰巧非开发者搜到了这篇博客,那么博客的内容可能不适合你。其实网上Reveal的教程很多,但是很多都是停留在Reveal 1或者Reveal 2时代的博客,不太适合最新版本的Reveal 7,所以还是决定写这样一篇文章。本文最终的效果:淘宝首页: 可以看到,淘宝首页其实就是一个巨大的CollectionView 京东首页: 可以看到,京东首页其实就是一个巨大的Tabl...
阅读(3478) 评论(2)

详解Swift中的错误处理

前言任何代码都会发生错误,这些错误有些是可以补救的,有些则只能让程序崩溃。良好的错误处理能够让你的代码健壮性提高,提高程序的稳定性。本文的Swift版本:Swift 3Objective C返回nil如果出错了,就返回空是Objective C中的一种常见的处理方式。因为在Objective C中,向nil发送消息是安全的。比如:- (instancetype)init { self = [...
阅读(2888) 评论(0)

iOS自动化测试的那些干货

前言 如果有测试大佬发现内容不对,欢迎指正,我会及时修改。 大多数的iOS App(没有持续集成)迭代流程是这样的也就是说,测试是发布之前的最后一道关卡。如果bug不能在测试中发现,那么bug 就会抵达用户,所以测试的完整性和可靠性十分重要。目前,大多数App还停留在人工测试阶段,人工测试投入的成本最低,能够保证核心功能的使用,而且测试人员不需要会写代码。但是,在很多测试场景下,人工测试的效率...
阅读(6243) 评论(1)

优雅的开发Swift和Objective C混编的Framework

前言为什么要写这样一篇文章,因为昨天和一个朋友讨论到Swift和Objective C如何混合开发Framework,中途发现了很多有意思的坑。用Swift封住哪个OC的库是一件比较常见的事情,毕竟对于大多数公司来说,老的代码都是用OC写的,而且经过多次迭代,这些OC的代码已经被验证了是稳定的,用Swift重写代价太大。这就引入了一个需求: 用Swift和OC来混编一个Framework。 如果你之...
阅读(5656) 评论(11)

iOS开发中常用的那些工具

工欲善其事,必先利其器。 列表 XCode 无须多说 Instruments 性能分析工具:卡顿,内存,网络,数据存储等等 xcodebuild and xcrun 命令行工具用来脚本打包和测试 synx 把XCode工程中的Group自动映射到实际的文件夹 oclint 静态分析Objetive C代码,发现隐藏问题 xctool 基于xcodebuild的扩展,更方便的使用命令行测试 Char...
阅读(1342) 评论(0)
284条 共19页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1046797次
    • 积分:13210
    • 等级:
    • 排名:第1033名
    • 原创:284篇
    • 转载:0篇
    • 译文:0篇
    • 评论:208条
    博客专栏