在字符串中 快速查找

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

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

点击跳转以继续阅读

swift 中内存狂飙的问题

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

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

点击跳转以继续阅读

Swift UIButton 圆角 + 阴影

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

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

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

点击跳转以继续阅读

Swift 里的 单件模式

在写代码的过程当中,我们总会遇到需要保证全局只有一个实例的时候,这个时候就要使用单件模式

单件模式——它确保了一个类只有一个实例,并提供一个全局访问点。

那么怎么实现单件模式呢?我们来看看最经典的 Java 代码,该怎么实现这个 单件模式。

我们在网上随便搜索“java 单件模式”就能找[……]

点击跳转以继续阅读

Swift 里的 Stack 实现

今天在练习设计模式的时候忽然发现 Swift 里是没有栈的——就是 Stack 类。由于我是照着 Java 版的设计模式来学习的,所以我只好自己看着实现一个了。

不过说起来,在苹果官方手册的“泛型”一章中还真有个栈的栗子,它是用结构体实现的。这也倒是符合了 Swift 一贯的风格——毕竟, S[……]

点击跳转以继续阅读