翻译-为什么objc_msgSend必须用汇编实现

译者前言

总是看到有人说用汇编实现objc_msgSend是为了速度快,当然这个不可否认。但是难道没有别的原因?于是就看到了这篇文章,遂翻译之!=。=
我自己的理解就是,用汇编实现,是为了应对不同的“Calling convention”,把函数调用前的栈和寄存器的参数、状态设置,交给编译器去处理。
先看看原文吧。

原作者: Ari Grant
原文链接: Why objc_msgSend Must be Written in Assembly

API返回结果设计经验与总结

前言

RESTful API的设计已经很成熟了,大家也都比较认可。本文也不再过多介绍RESTful API相关的知识,而是针对JSON型API的返回结果设计,总结下自己的经验。

结构

先来看看返回结果的结构示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
data : { // 请求数据,对象或数组均可
user_id: 123,
user_name: "tutuge",
user_avatar_url: "http://tutuge.me/avatar.jpg"
...
},
msg : "done", // 请求状态描述,调试用
code: 1001, // 业务自定义状态码
extra : { // 全局附加数据,字段、内容不定
type: 1,
desc: "签到成功!"
}
}

总结一些iOS项目中组织代码的方法

前言

总结一些组织代码的方法,大到各个子项目模块之间,小到单个文件内部,涉及到了CocoaPods私有库、Carthage构建私有Framework、项目内Group和文件夹、类内用Category组织、文件内的#pragam mark、// MARK -。虽然有些老生常谈,就当是重新梳理一遍吧=。=。

对组件化与模块化的思考与总结

前言

前段时间反复研读了蘑菇街 App 的组件化之路蘑菇街 App 的组件化之路·续iOS应用架构谈 组件化方案,然后又找到了其它一些研究组件化、模块化方案的文章,但是总觉得差点什么,所以还是决定从头开始思考。文章的标题起的好宽泛,感觉给自己挖了个深坑-。-,其实只是自己对组件化、模块化的一些看法、总结。

开源项目-TTGTagCollectionView

更新

  • 2016-02-18: 修复了超长标签导致排版错误的Bug。

前言

这段时间做项目的时候,总是需要显示一些“标签”样式的内容,但是又找不到用的顺手的库,所以琢磨了几天,自己实现了出来,就有了这个库:TTGTagCollectionView。如果只需要显示文字标签的话,直接使用TTGTextTagCollectionView,需要自己定义标签的话,就用TTGTagCollectionView,效果如下:

ScreenShot

CocoaPods: pod "TTGTagCollectionView"

Github地址: https://github.com/zekunyan/TTGTagCollectionView

有趣的Autolayout示例3-Masonry实现

更新

2016-06-02: 感谢我不是蜡笔小新但是我有小白,发现了Case 2的最后两个cell展开动画问题,原来是tableView的estimatedRowHeight会跟展开动画冲突的缘故。
2015-12-23: 感谢XVXVXXX的PR,Case 1不再需要Fake Header View,直接用contentInset就好~
2015-12-17:Case3的等间距,用UIStackView实现最优雅,但是无奈只有iOS9以上支持。兼容方案如OAStackView也可以,但是在UITableViewCell里面用,或者需要频繁的增减内部View的数量时,性能损耗有点厉害,会卡。所以,还是要看需求=。=

前言

第三篇来了。
依然是3个小例子,主要部分用Masonry手写代码实现,其它的约束在storyboard里面直接拖拽搭建。
至于为啥不用VFL,主要是因为它的“描述性”的写法很容易出错,没有补全、不好调试,写起来没有“代码”的感觉=。=。当然,这个仁者见仁智者见智~
三个例子分别是:Parallax Header动态变高度的UITableViewCell,以及两种方式实现等间距。原理其实都很简单,例子也都是平时积累起来的。

前两篇:
第一篇:有趣的Autolayout示例-Masonry实现
第二篇:有趣的Autolayout示例2-Masonry实现

Github地址:
https://github.com/zekunyan/AutolayoutExampleWithMasonry

Gif示例

有趣的Autolayout示例2-Masonry实现

前言

Masonry写的Autolayout示例又来了,仍然是三个小例子,分别是变高度的UITableViewCell、topLayoutGuide与bottomLayoutGuide,还有自定义的baseline,外加两个基本的知识点讲解,说不上“有趣”=。=,比较基础,写了很多,各位随意看看吧~

第一篇: 有趣的Autolayout示例-Masonry实现
第三篇: 有趣的Autolayout示例3-Masonry实现

Github地址:
https://github.com/zekunyan/AutolayoutExampleWithMasonry

Gif示例

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器