Swift 中如何使用字典类型作为泛型约束

今天学员群里有人提了这么一个问题,为什么把特性的字典类型作为泛型类型约束的时候,就必然报错?

显然,说的很明确了,“你不能从一个非协议、非类的类型继承”。显然,字典是个泛型结构体……

那么解决思路也很明确了,创建一个类来装饰个字典或许是个不错的选择但太麻烦,那么就从协议上下手。

有条件的协议遵循

我们可以给字典[……]

点击跳转以继续阅读

NSTextField 文本模糊的解决办法 canDrawSubviewsIntoLayer

在开发落格输入法 macOS 的过程当中,我一直被一个奇怪的问题所困扰——文本模糊。

次像素

无论我怎样调试,落格输入法的候选文字都无法达到原生文字的那样清晰和锐利。在请教了大神之后,得到的活久见经验是——上游次像素渲染 bug。

在很多平台都有类似问题,macOS 底层渲染也有这样的错误,一旦你的布局出现了小数点或者不是整数,就会导致文本渲染模糊。

那[……]

点击跳转以继续阅读

到底“双拼”是个啥?

本文首发于数码荔枝,原名 《到底「双拼」是个啥?听双拼输入法开发者给你说》

就在上个周末,我向一个新朋友推荐双拼输入法,他是那种对这方面从来没有关心过的人——就连“全拼”这个概念,也是在我向他介绍了双拼之后才知道的——“原来我一直以来用的叫做全拼(拼音)输入法”。

正是这件事情,促使我动手撰写这篇文章。作为一款双拼输入法的开发者,说实在的,当时我也很“捉鸡”,我们常说双拼效率高、双[……]

点击跳转以继续阅读

上架一款订阅付费的 app,除了代码你还需要做什么?

终于,落格输入法 X 成功地上架了。从开发到上架,发生了很多事情。

现在,我就来说说,除了代码,上架一款订阅收费的 app,你都需要做些什么。

使用协议

一般来说,苹果为你提供了统一的软件使用协议,就在你对应app 的 “app infomation”页面下,右侧有个 License Agreement。

如果你要提供订阅内购,就需要应用你自己的使用协议才可以,你需要一[……]

点击跳转以继续阅读

当我们在谈隐私的时候,到底在说什么?

隐私是个很奇妙的东西,当你一个人的时候,它就不存在。

TenSteps

如今的互联网普遍对隐私焦虑,常常有人喊“要保护隐私”……但紧跟着就有人会说“我没什么好隐藏的”。面对这样的丧气的回复,保护隐私的倡导者们除了内心深深的无力感,还有就是迷茫了。

隐私这个东西,实际上在互联网之前就已经存在,比如法律规定不允许私自拆读他人信件——这就是对你个人隐私的保护。

在互联网之前,隐私传播需要[……]

点击跳转以继续阅读

我凭本事下的软件,为什么要我付费?

本文首发于 小众软件,现在我在自己博客记录一下。

前几天落格输入法 X 在和各个媒体做合作发码搞活动的时候,我们意外地和一个分享 Apple ID 的公众号平台进行了合作,搞了一波抽奖送码的活动。

“前脚说自己被盗版困扰不得不改变商业模型,后脚就跑去和发盗版软件的微信公众号合作推广,简直就是在给自己打脸。”

最终在一天后我才发现这个事实,然后我们第一时间撤了稿,取消了这次活动[……]

点击跳转以继续阅读

落格输入法:没人买我的 APP 了,但我不想 GG

文章原标题《如果这个输入法再无法让我维持生计,我就回家卖红薯》

人家说一个 App 想要卖的好,总得配一个动人的故事,去年一篇专访如果下个月没人买我的 App,我就得 GG扎了很多人的心——一不小心说了大实话,不少人难以接受这个现实。——人是动到了,就是角度似乎有点问题hhh

我也不想接受这个现实——但现实就是如此,双拼用户市场比我预计的还要小那么一点点,仅仅两年,落格输入法的下载量就已经[……]

点击跳转以继续阅读