编程开发

Xcode 自动版本号

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

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

But

后台的版本号[……]

点击跳转以继续阅读

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[……]

点击跳转以继续阅读

在字符串中 快速查找

很多时候,我们需要在字符串中执行查找,以判断过滤指定的内容出来。比如过在落格输入法当中,就需要用辅码过滤出需要的候选词。

一般来说,查找和对比肯定是数字来的最快,不过在词库上总不能把所有的词汇都转换为数字(虽然理论上可行……)在字符串的搜索上,我们有很多种办法来实现,这里我就说一下我自己的思路[……]

点击跳转以继续阅读

基于动态规划的整句输入法

一般来说,我们不会在用动态规划算法求解的问题上称呼它为“动态规划”,而是称之为“隐马尔可夫模型”,不过,如果我们单纯用动态规划算法来求解一个普通的有向无环图,那么就只能说是动态规划了……

这次我们要来说的,是基于词库的整句输入法。而不是基于状态转移的隐马尔可夫模型求解。

词库

由于不需要模[……]

点击跳转以继续阅读

ios 为视障用户支持 VoiceOver

其实很少用户知道,ios系统其实有一套完整的轻松访问机制,很多盲人或者说视障用户都喜欢使用iphone

所以说,作为一名开发者,我觉得不论是从产品销售面还是作为责任,都应该做好完善的轻松访问支持。

不过好在,得益于苹果严格的开发规范,所以一般只要你的app已经通过审核能够上架,那么基本[……]

点击跳转以继续阅读

iOS 平台 SQLite 性能优化

开始

在 ios 平台,数据永久化的存储方式就那么几种,比如说 coredata,比如说realm,还有nosql的几种方案,但是很遗憾,nosql的几种方案支持的功能都还是太少,这样就让对它们的选择显得十分鸡肋——毕竟,如果是简单的应用的话,那就还不如其他方案来的方便快捷——虽然nosql是趋势[……]

点击跳转以继续阅读

获取 中文 维基百科语料

最近在做输入法的词库,实现新的整句输入模型,(回头我会把之前的基于词的整句输入模型讲讲),新的整句输入模型是基于 HMM (也就是隐马尔可夫模型)来做的,当然了,由于我个人设备资金等有限,只做了二阶矩阵。不过即使如此,模型还是需要训练的。

当然,不是说用小说名著来训练就不好,只不过很难找到各行[……]

点击跳转以继续阅读

swift 中内存狂飙的问题

在使用 Swift 语言进行开发的时候,很多朋友会莫名奇妙地遇到内存爆满的问题,明明有 ARC ,明明释放了内存,却还是让程序的内存占用随着循环而一路飙升。

这里其实并不是出现了内存泄露,这其实是 ARC 的一个机制:在每一个主 Runloop 结束的时候进行清理。也就是说,它有一套必要的缓存[……]

点击跳转以继续阅读

Swift 3 里的 GCD

Xcode 8 正式版已经发布,我要在第一时间迁移我的项目到 Swift 3 —— 毕竟这是趋势。

在迁移的过程当中我遇到了很多问题——比如 Xcode 提供的自动迁移工具根本没有用,在我等待了两个多小时之后,我放弃了,选择手动迁移——毕竟,Xcode 的自动更正也是很好用的。

然而——[……]

点击跳转以继续阅读

Swift UIButton 圆角 + 阴影

很多时候,我们都希望按钮更符合 iOS 的设计风格,这样会让应用的界面看起来不那么跳,就算设计的不好看,也不会显的与系统格格不入。

“我不是设计师,我不知道怎么设计好看——但尽可能贴近系统风格不是错误的选择。 ” —— by Router

那么对于 UIButton 来说,圆角+阴影应该是常态。[……]

点击跳转以继续阅读