iOS开发的奇技淫巧

独奏

技术分享|2015-4-24|最后更新: 2023-2-23|
type
status
date
slug
summary
tags
category
icon
password
最近好像这个话题很热啊,我不生产奇技淫巧我是大自然的搬运工

结构体简便初始化

三元条件表达式的两元使用

到这里让我想起了一个笑话
C有一个鲜为人知的运算符叫”趋向于”, 写作“–>”。比如说如果要实现一个倒数的程序,我们可以定义一个变量x,然后让它趋向与0:
会打印出: 9 8 7 6 5 4 3 2 1 0

数组的下标初始化

这个特性可以用来做枚举值和字符串的映射

可变参数类型的block

一个block像下面一样声明:
如果block的参数列表为空的话,相当于可变参数(不是void)
这样,block的主调和回调之间可以通过约定来决定block回传回来的参数是什么,有几个。如一个对网络层的调用:
主调者知道自己请求的是哪个Api,那么根据约定,他就知道block里面应该接受哪几个参数:
这个特性在Reactive Cocoa的-combineLatest:reduce:等类似方法中已经使用的相当好了。

小括号内联复合表达式

A compound statement enclosed in parentheses原谅我的渣翻译- -,来自《gcc官方对此的说明》,源自gcc对c的扩展,如今被clang继承。
于是乎可以发挥想象力了:
有点像block和内联函数的结合体,它最大的意义在于将代码整理分块,将同一个逻辑层级的代码包在一起;同时对于一个无需复用小段逻辑,也免去了重量级的调用函数,如:
这样使得代码量增大时层次仍然能比较明确。
PS: 返回值和代码块结束点必须在结尾

快捷的收键盘代码

去掉导航条返回键 title

改变uitextfield placeholder的颜色和位置

电话 xxxx转xxxx

一般客服电话经常会出现需要转接分机的情况,比如 10010转6666 的形式,只需要如下的 URL scheme 就可以了:
拨打的时候会首先拨通 10010,接通之后会紧接着按下6666四个数字

参考