其实很少用户知道,ios系统其实有一套完整的轻松访问机制,很多盲人或者说视障用户都喜欢使用iphone。
所以说,作为一名开发者,我觉得不论是从产品销售面还是作为责任,都应该做好完善的轻松访问支持。
不过好在,得益于苹果严格的开发规范,所以一般只要你的app已经通过审核能够上架,那么基本[……]
苹果新出的用于代替OC的高级编程语言!
其实很少用户知道,ios系统其实有一套完整的轻松访问机制,很多盲人或者说视障用户都喜欢使用iphone。
所以说,作为一名开发者,我觉得不论是从产品销售面还是作为责任,都应该做好完善的轻松访问支持。
不过好在,得益于苹果严格的开发规范,所以一般只要你的app已经通过审核能够上架,那么基本[……]
在 ios 平台,数据永久化的存储方式就那么几种,比如说 coredata,比如说realm,还有nosql的几种方案,但是很遗憾,nosql的几种方案支持的功能都还是太少,这样就让对它们的选择显得十分鸡肋——毕竟,如果是简单的应用的话,那就还不如其他方案来的方便快捷——虽然nosql是趋势[……]
如何在 iOS 上写一款输入法?这个问题已经被很多人解答过了。你可以轻易通过 Google 找到一篇详细的教程。但是,在 macOS 上写一款输入法就没那么简单了。
好吧,严格来讲,是指用 Swift 在 macOS 上写一款输入法很难。主要的原因是 从来没有人做过这件事情 。
目前能够[……]
Xcode 8 正式版已经发布,我要在第一时间迁移我的项目到 Swift 3 —— 毕竟这是趋势。
在迁移的过程当中我遇到了很多问题——比如 Xcode 提供的自动迁移工具根本没有用,在我等待了两个多小时之后,我放弃了,选择手动迁移——毕竟,Xcode 的自动更正也是很好用的。
然而——[……]
我们都直到,第三方输入法比如搜狗输入法有个经典的手势操作——在键盘上左右划动即可移动光标。而这个功能我自己也十分的常用,所以,我想要自己来实现它。
首先我想到的就是 UISwipeGestureRecognizer ,不过结果可想而知,划动一次只能移动一格光标,这可不是我想要[……]
在一开始,Swift 里并没有提供正则表达式的支持,所以我们只能自己来封装,比如说写一个结构体,像这样:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
struct MyRegex { let regex: NSRegularExpression? init(_ pattern: String) { regex = try? NSRegularExpression(pattern: pattern, options: .CaseInsensitive) } func match(input: String) -> Bool { if let matches = regex?.matchesInString(input, options: [], range: NSMakeRange(0, (input as NSString).length)) { return matches.count > 0 } else { return false } } } |
其实现在 Swift 已经有了对正则表达式的支持,我们只需要这样:
[crayon-693a385facbf2617581[……]
大多数情况下,如果我们想要获取数组中某一段的内容(比如说从前到中间,或者数组最后的某些值),这时候就需要遍历数组来给新的数组赋值:
|
1 2 3 4 5 6 7 |
let fixedArray = [1,2,3,4,5,6] var myArray:[Int] = [] for (i,n) in fixedArray.enumerate() { if i > 3 {break} myArray.append(n) } |
这样数组短了还好说无所谓,但如果数组比较大而我们需要的值又比较多,那遍历起来显然就很浪费时间。[……]
国内似乎没有人愿意来为 iOS 系统写一个输入法,除了几个寡头大公司在做以外就没有别的了。走近了中国特有的苹果生态平台看看,发现其实里边都是空壳子,有意义的应用真的是少的可怜。
落格博客最近正在致力于给 iOS 平台写第一款能真正支持码表的双拼输入法,第一个兼容的双拼方案自然是开放的“小鹤双拼”,[……]
说起 SQLite,它和你熟知的 MySQL 一样,都是关系型数据库管理系统,但与后者不同的地方在于,它完全不需要对应的独立服务器!
一般说起来,SQLite 都是以文件的形式存在,大多用在应用的内嵌储存里。通过在应用代码里加载 SQLite 库,就可以很方便地直接存取 SQL[……]
在写代码的过程当中,我们总会遇到需要保证全局只有一个实例的时候,这个时候就要使用单件模式。
单件模式——它确保了一个类只有一个实例,并提供一个全局访问点。
那么怎么实现单件模式呢?我们来看看最经典的 Java 代码,该怎么实现这个 单件模式。
我们在网上随便搜索“java 单件模式”就能找[……]
大多数情况下,人们用编程语言是否会隐式地转换数据类型来判断一门语言是否为弱类型语言,比如 C。
而实际上,对于除了比较经典的语言外,大部分人对于其他常见语言的强、弱类型是分不清楚的——或者说,是不一致的。因此总会有人来争论它。如果我们以开篇的概念来作为基础,那么矛盾就会显现:
比如 Pasc[……]
我们在进行网络开发的时候,难免要从网络服务器中获取数据,很多时候还需要给服务器提交数据,就现在来说,一般我们都会习惯使用 JSON 格式的数据,因为它方便好用,这次我们就一起来看看,如何用 Swift 发送 JSON-RPC 命令并获取回复。
JSON-RPC是一个无状态且轻量[……]
今天在练习设计模式的时候忽然发现 Swift 里是没有栈的——就是 Stack 类。由于我是照着 Java 版的设计模式来学习的,所以我只好自己看着实现一个了。
不过说起来,在苹果官方手册的“泛型”一章中还真有个栈的栗子,它是用结构体实现的。这也倒是符合了 Swift 一贯的风格——毕竟, S[……]
更新:一转眼 5 年过去了,这篇文章也无效了……现在 Xcode 已经不允许随意安装插件,目前唯一推荐的也就一个 Swift Format for Xcode,各位,共勉。
—
在 OSX 上进行开发,那你必然少不了和这个著名的 IDE 打交道。毕竟,我们使用IDE就是为了提高生产力[……]