编程开发

iOS 自定义键盘 左右划动移动光标 实现

我们都直到,第三方输入法比如搜狗输入法有个经典的手势操作——在键盘上左右划动即可移动光标。而这个功能我自己也十分的常用,所以,我想要自己来实现它。

首先我想到的就是 UISwipeGestureRecognizer ,不过结果可想而知,划动一次只能移动一格光标,这可不是我想要[……]

点击跳转以继续阅读

Swift 中的正则表达式

在一开始,Swift 里并没有提供正则表达式的支持,所以我们只能自己来封装,比如说写一个结构体,像这样:

其实现在 Swift 已经有了对正则表达式的支持,我们只需要这样:
[crayon-6936280abe1bb525479[……]

点击跳转以继续阅读

Swift 中切分数组

大多数情况下,如果我们想要获取数组中某一段的内容(比如说从前到中间,或者数组最后的某些值),这时候就需要遍历数组来给新的数组赋值:

这样数组短了还好说无所谓,但如果数组比较大而我们需要的值又比较多,那遍历起来显然就很浪费时间。[……]

点击跳转以继续阅读

让 pip 走代理

使用 python 的时候,经常需要下载一些第三方的框架,好在 python 也有类似 apt 的包管理工具,pip。

不过,pip 虽然能够管理包,却没有切换镜像源的功能,而我们下载的包,大多数都在国外大型的代码托管服务器上,这就导致了往往几百KB的包要下载一个小时。

 [……]

点击跳转以继续阅读

“plugin invalidated” ios 自定义键盘

国内似乎没有人愿意来为 iOS 系统写一个输入法,除了几个寡头大公司在做以外就没有别的了。走近了中国特有的苹果生态平台看看,发现其实里边都是空壳子,有意义的应用真的是少的可怜。

落格博客最近正在致力于给 iOS 平台写第一款能真正支持码表的双拼输入法,第一个兼容的双拼方案自然是开放的“小鹤双拼”,[……]

点击跳转以继续阅读

Xcode 里各种 Sent Event 的含义

在 Xcode 中,我们给 iOS 平台开发 App,免不了要添加一个按钮绑定一个事件,这时候就有说法了,你会发现一个按钮的触摸事件早已经不是以前的一个“Touch Up Inside”那么简单了。

参照题图,目前至少有这么多中有的没的事件可以供你选择,在功能更多的同时,新手可能就更加懵逼了?[……]

点击跳转以继续阅读

Swift 里的 单件模式

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

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

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

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

点击跳转以继续阅读

用 python 写一个域名白名单爬虫

前段时间我写过一篇文章,说是时候使用白名单来翻墙了,不过那个白名单已经过期好久,用起来不是那么顺畅了,后来我就夸下海口说:我要自己实现一个爬虫,来爬取中国的网站域名,好更新白名单。

好吧,总之这个爬虫是写好了然后上线爬取了一万多的,不过最后我找到了前人做的更好的方案,于是这个爬虫项目还是废弃了[……]

点击跳转以继续阅读

编程语言的强类型、弱类型

大多数情况下,人们用编程语言是否会隐式地转换数据类型来判断一门语言是否为弱类型语言,比如 C。

而实际上,对于除了比较经典的语言外,大部分人对于其他常见语言的强、弱类型是分不清楚的——或者说,是不一致的。因此总会有人来争论它。如果我们以开篇的概念来作为基础,那么矛盾就会显现:

比如 Pasc[……]

点击跳转以继续阅读

Swift 里的 Stack 实现

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

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

点击跳转以继续阅读

一道 华为 面试 的 编程算法 题

今天朋友发来一道很特别的题目:

题目:有两个数组a,b,大小都为n,数组元素的值任意,无序;
要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小。

我乍一看这个题感觉眼熟……和国内各种C语言考试基本上差不多,不过仔细一看似乎还有点难度,不像那种一看就有头绪的问题。好吧,[……]

点击跳转以继续阅读