SwiftCafe 快报 - 自定义下标访问

数组使我们日常开发中经常会接触到的东西,简单来说,它就是一个变量,里面存放的是一组内容,然后我们通过下标的方式获取或设置其中的某一项内容。


继续阅读...
   发表于

SwiftCafe 快报 - defer 关键字

defer 关键字也是 Swift 2.0 中提供的新语法,就像是上期中我们提到的 guard 关键字一样。都是 Swift 2.0 中的现代化语言特性的体现。

那么,我们现在就来看一下 defer 到底为何物。


继续阅读...

   发表于

SwiftCafe 快报 - 3D Touch 实践之桌面快捷方式

`3D Touch 快捷方式

说到 3D-Touch 无疑是这次 iPhone 6s 发布的最主要亮点,究竟这项技术是鸡肋还是革新,自然见仁见智。不过,它的确给了我们一个新的交互维度,只是还需要等待第三方应用们来发挥它的特性。

想想触摸屏从单点触摸到多点触摸吧,交互方式的改变,定会给我们全新的思维角度。

继续阅读...

   发表于

SwiftCafe 快报 - Array.contains

Swift 2.0 中对语言进行了又一次的改进,这次将整个语言变得更加面向对象化,比如在 Swift 1.x 中如果要判断某个元素是否在数组中,就需要用到 contains 函数:

1
2
3
if contains(array, value) {
...
}

而在 Swift 2.0 中,contains 被作为 Array 的一方法来使用了。所以我们只需这样调用即可:

1
2
3
if array.contains(value) {
...
}

继续阅读...
   发表于

SwiftCafe 快报 - 了解闭包

闭包(Closure) 是现代开发语言的必备特性,极大的提高了我们的开发效率。

关于闭包,你可以把它理解为一种特殊的变量或对象。简而言之,我们通常的对象,里面存储的是变量或对象的值,而闭包里面存储的是一段可执行的代码或函数,确切的说,是函数的地址。


继续阅读...
   发表于

iOS 开发者旅途中的指南针 - LLDB 调试技术

今天给大家介绍的内容,无关乎任何功能性开发技术,但又对开发的效率影响至深,这就是调试技术。

何为调试呢,比如我们用 print 函数在指定位置进行输出,来定位某些节点的变量内的取值:

1
2
3
4
5
let result = parseJSON("[1,2,3]");
print(result);
result = parseJSON("error");
print(result);

相信我们大家看到类似这样的代码都不会陌生,估计为开发者朋友都会或多或少的用这样的方式对程序进行调试。

这种方式有它的方便之处,就是我们不需要太多思考,需要跟踪某些地方的时候,直接输出就可以得到调试信息了。但这样做也有它的弊端,就是我们每次这样调试,都要反复的编译,运行,然后写进新的 print 语句,再继续编译,运行。反复的编译,运行会比较消耗时间。并且我们再调试完之后,很容易会忘记将调试语句删除,导致很多输出语句遗留再代码中,随着项目的长期进展后,这样会对项目后期的调试造成很多干扰。

而且,当我们想再次调试这段区域的时候,我们不得不再次写上这些输出语句。而有时对于稍微复杂一些的调试场景,print 输出这样的方式,往往还不能太好的应对。


继续阅读...
   发表于

深阅读 - swiftyJSON 源码研究 第一篇

我们在之前的文章中专门介绍过 SwiftyJSON 库,帮助我们方便的在 Swift 语言中处理 JSON 数据。SwiftyJSON 是一个开源的第三方库,它的代码我们可以在 github 上面找到。并且 SwiftyJSON 的代码,可以称得上短小精悍。
只有短短的 1000 多行代码。但虽然只有这么段的代码,却涵盖了一个第三方库该有的大部分编码标准,看完这篇文章后,你的功力就会大幅提升。为什么呢?

答案很简单,就是你可以用 API 设计者的思维来思考问题啦。这种思维角度非常的重要,

继续阅读...

   发表于

iTerm - 让你的命令行也能丰富多彩

今天要给大家介绍一个工具: iTerm。这次我们讲的和开发技术无关,只是一个工具。但虽然是一个工具,却能让你的功力提升一个层级。下面我们就来一看究竟。每一位开发者都难免要用到命令行,从 git 版本库操作,到运行一些脚本,都离不开命令行。虽然现在的图形界面已经很强大了,但在很多情况下,使用命令行仍然是最快捷的方式。


继续阅读...
   发表于

Swift 与 JSON 数据

我们大家平时在开发 App 的时候,相信接触最多的就是 JSON 数据了。只要你的 App 有读取网络数据的功能,你就免不了要与 JSON 打交道。比如你做一个新闻 App,你要读取和解析新闻数据,这样才能显示给用户。

那么我们今天就来了解一下 JSON 以及它在 App 中的应用吧。


继续阅读...
   发表于

Swift Cafe 近期精选

之前写的技术文章,这次为大家进行了整理,包括 Swift 中的很多概念,Optionals,CocoaPods,闭包,以及一个应用的例子。不足之处还有很多,希望大家在阅读过程中多多提意见。秉承快速迭代的互联网思维,努力提升大家的阅读体验。


继续阅读...
   发表于

Swift Cafe 近期精选

之前写的技术文章,这次为大家进行了整理,包括 Swift 中的很多概念,Optionals,CocoaPods,闭包,以及一个应用的例子。不足之处还有很多,希望大家在阅读过程中多多提意见。秉承快速迭代的互联网思维,努力提升大家的阅读体验。


继续阅读...
   发表于

关于 Swift 2.0 - 语言新特性与革新

随着刚刚结束的 WWDC 2015 苹果发布了一系列更新,这其中就包括了令人振奋的 Swift 2.0。 这是对之前语言特性的一次大幅的更新,加入了很多实用和方便的元素,下面我们就一起来看看这次更新都包括了什么。

将 println 函数统一为 print

现在我们在代码中输入 println("xxx") 这样的调用时,编译器就会报错:

都已经变成通用的 print 方式了:

1
print("xxx")

语言的结构性更强

比如在 Swift 1.2 中,我们要判断某元素是否在数组中,我们会用到 contains 函数:

Swift 1.2
1
2
3
4
5
6
7
var apps = ["Youtube","Google","Facebook"]
if contains(apps, "Google") {
println("ok")
}

而在 Swift 2.0 中,变成了直接调用数组对象 appscontains 方法进行这个操作,这种调用方式更加的结构化,和面向对象化:

Swift 2.0
1
2
3
4
5
if apps.contains("Google") {
print("ok")
}

继续阅读...
   发表于

extension 的一个应用 - 优化图片的读取机制

枚举和 extension 都是 swift 中非常好用的特性。这里我们就来讨论一个应用的例子,供大家参考。

我们在开发 app 的时候,都会用到各种图片资源,而我们读取图片资源时主要是通过UIImage 来操作的。比如这样:

1
var icon = UIImage(named: "mushroom")

继续阅读...
   发表于
微信公众平台
更多精彩内容,请关注微信公众号


公众号:swift-cafe
邮件订阅
请输入您的邮箱,我们会把最新的内容推送给您: