众所周知,在 iOS 平台上自从 8.0 版本开始,可以为 iOS 开发第三方的输入法键盘了,而这些键盘可以被放在 AppStore 销售了,不过,同时也有着十分严格的权限规则。
对此,苹果为第三方的键盘设计了两种权限,一种是最小的,只有最基本的键盘功能的权限、另一种则相对较多,键盘获取了“完全访问”权限之后基本上就和 android 上键盘差不多,可以访问联系人、可以联网等等。
不过[……]
今天遇到一个奇怪的问题,程序运行一点问题都没有但终端报错如下
1 |
Could not load the "" image referenced from a nib in the bundle with identifier "com.xxx.xxx" |
其实就是题目上的错误,这个问题看上去挺简单——不就是引用的图片丢失了么……
其实不然,由于名字是 "" 所以你根本找不到究竟是哪个图片丢失了——实际上一个都没有丢。
毕竟程序里边的资源一个都没有[……]
最近给落格输入法加入了一个叫做“对数云”的东西,其实不难,比使用 iCloud Document 要简单,不过网上的资料不太多,你通过那些上手教程来现充应该不是问题,但想要提升用户体验,就不是那么容易了。这里我们就一起来看看,怎么样才能让 CloudKit 运行得更畅快。
CKDatabaseOperation
一般来说,你获取一条数据可能是这样的:
[crayon-6741df8186e2[……]
cmph 的全称是 C Minimal Perfect Hashing Library ,是一个很著名的用 C 写成的最小完美哈希库,什么是完美哈希?
完美哈希
这里我们不讲原理,你只需要知道传统的哈希有冲突,我们需要靠各种算法来处理冲突就可以了,对于哈希,总是需要一个表,这个表里预留了很多位置,然后计算出来的值就是这些位置的坐标,你可以把对应的数据放到坐标里。
但这时候有一个问题,如果[……]
很多时候,我们需要在字符串中执行查找,以判断过滤指定的内容出来。比如过在落格输入法当中,就需要用辅码过滤出需要的候选词。
一般来说,查找和对比肯定是数字来的最快,不过在词库上总不能把所有的词汇都转换为数字(虽然理论上可行……)在字符串的搜索上,我们有很多种办法来实现,这里我就说一下我自己的思路:
Set<String>
由于我的词库辅码筛选只对两字或者三字词汇生效,那么我考虑[……]