UITableViewCell 动态高度 配置

UITableViewController 是iOS开发中相当常用的一个空间了,它的 cell 很早就可以支持自适应高度,或者说是 动态高度。在开发中,如果cell里布局了复杂的内容——比如连图带字的一条微博。那么这个时候动态的自动的高度就显得很有用了——总不用你自己去计算[……]

点击跳转以继续阅读

Xcode 自动版本号

做开发者肯定有过这样的烦恼:版本号提交错了!

编译和测试的版本多了,难免提交的时候才发现版本号搞错了。要不就是后台版本号正确,前台的版本号忘记更改。其实,可以让前台自动获取后台的版本号数据,比如这样:

But

后台的版本号[……]

点击跳转以继续阅读

一个自动排序的 Swift 栈

一年前,我在 git 上发布了一个用 Swift 实现的栈,一共有两个版本。因为 Swift 自身并没有实现这个东西——尽管官方的教程中泛型的部分就是用这个栈举的例子。

也许是人家觉得这个太简单了吧

总之,这次我又来玩这个东西了,因为 HMM 的 Viterbi 算法需要做修剪,不然路径太多无谓[……]

点击跳转以继续阅读

Swift 中判断字符串是否有 Emoji 表情

更新:网络上流传的 emoji 代码点不太完整,我按照维基百科的资料重新整理了一下,文中的 Swift 版本代码已更新。

很多时候我们需要判断一个字符、或者说是一句话里是不是包含了emoji,使用 Swift 语言开发 app 也不例外,比如可以使用正则表达式——但很遗憾,似乎不同的语[……]

点击跳转以继续阅读

落格输入法 是怎么实现 app 设置而不需要 完全访问 权限的?

众所周知,在 iOS 平台上自从 8.0 版本开始,可以为 iOS 开发第三方的输入法键盘了,而这些键盘可以被放在 AppStore 销售了,不过,同时也有着十分严格的权限规则。

对此,苹果为第三方的键盘设计了两种权限,一种是最小的,只有最基本的键盘功能的权限、另一种则相对较多,键盘获取了“完[……]

点击跳转以继续阅读

Could not load the “” image referenced from a nib in the bundle with identifier “com.xxx.xxx”

今天遇到一个奇怪的问题,程序运行一点问题都没有但终端报错如下

其实就是题目上的错误,这个问题看上去挺简单——不就是引用的图片丢失了么……

其实不然,由于名字是 ""

点击跳转以继续阅读

CloudKit 优化指南

最近给落格输入法加入了一个叫做“对数云”的东西,其实不难,比使用 iCloud Document 要简单,不过网上的资料不太多,你通过那些上手教程来现充应该不是问题,但想要提升用户体验,就不是那么容易了。这里我们就一起来看看,怎么样才能让 CloudKit 运行得更畅快。

CKDatabaseOp[……]

点击跳转以继续阅读

在 Swift 中使用 cmph

cmph 的全称是 C Minimal Perfect Hashing Library ,是一个很著名的用 C 写成的最小完美哈希库,什么是完美哈希?

完美哈希

这里我们不讲原理,你只需要知道传统的哈希有冲突,我们需要靠各种算法来处理冲突就可以了,对于哈希,总是需要一个表,这个表里预留了很多位置[……]

点击跳转以继续阅读