Chris Lattner 对 Swift 3 的总结与对 Swift 4 的展望

2016-09-14
阅读 5 分钟
3.7k
Swift 3 将在 2016 年秋到来。Swift 3.x 会在 2017 年春公布,Swift 4 会在 2017 年秋发布,这其中不包括修复 bug、提升兼容性之类的小更新(例如 3.0.1)。

面向协议的日志:给 Swift 协议添加默认参数

2016-09-13
阅读 5 分钟
3.3k
Swift 2.2 不允许在协议声明时提供默认参数。如果你想使用协议抽象出 App 中的日志代码,就会面临一个问题。因为默认参数通常用来将源代码位置传递给日志函数。不过,你可以在协议扩展中使用默认参数,这是一个变通方案。

闭包捕获语义第一弹:一网打尽!

2016-09-09
阅读 8 分钟
2.4k
尽管现在已经是 ARC 的天下了,但对于程序员来说理解内存管理和对象的生命周期依然是一门必修课。对于在 Swift 当中广泛应用的闭包就是其中一个特殊的例子,与 Objc 的闭包相比,Swift 的闭包也有着不同的捕获语义。下面让我们看看闭包是如何工作的。

答疑:能在 setter 方法中调用父类么?

2016-09-08
阅读 1 分钟
1.7k
SubFoo 类和 Foo 类的功能相似,只不过在赋值时新值会被转化成小写(虽然没有把转化操作放在初始化时进行)。因此当你新建一个子类的实例并且给它赋值一个大小写混合的字符串时,子类会自动把字符串转化成小写,然后再调用父类的赋值过程。

地道的 Swift:解包引导的初始化过程

2016-09-07
阅读 1 分钟
1.5k
作者:Erica Sadun,原文链接,原文日期:2016/08/04译者:Cwift;校对:Cee;定稿:千叶知风 在 Swift-Users 上,丹问到: 最近我在做下面这样的东西: {代码...} 有没有更好更地道的写法能够实现同样的功能呢? 我猜 serverDateFormatter 是 NSDateFormatter 的一个实例。如果是这样的话,丹想要做的东西像下面这样表...

使用 Swift 进行 JSON 解析

2016-09-06
阅读 6 分钟
2.9k
使用 Swift 解析 JSON 是件很痛苦的事。你必须考虑多个方面:可选类性、类型转换、基本类型(primitive types)、构造类型(constructed types)(其构造器返回结果也是可选类型)、字符串类型的键(key)以及其他一大堆问题。

在 iOS 中使用 HTML 模版和 UIPrintPageRenderer 生成 PDF

2016-09-05
阅读 21 分钟
4.9k
好吧,通过抛出问题来开篇有点不太好,但上述内容总结了我将要在这篇文章中讨论的事情。要在 iOS 应用内创建一个 PDF 文档,看起来像不是一个容易的需求,但事实并不是这样。作为开发人员,你必须要随机应变,为自己创造可供选择的方案,尽量达到目标。这是件很有挑战性的事情。确实,手动绘制 PDF 是一个非常痛苦的过程...

同时兼容 Xcode7 和 Xcode8

2016-09-02
阅读 7 分钟
3.6k
作为一名 iOS 开发者,你一定对 iOS 10 带来的新特性感到无比兴奋,并迫不及待地想要在应用中实践。虽然你想马上就动手以便第一时间就能“上车”。但 iOS 10 正式上线却是几个月以后的事情,在那之前,你不得不保持每几周就为应用发布一个新版本的频率。这个情况听起来是不是跟你现在的处境很像呢?

Swift 中动手封装字节

2016-09-01
阅读 9 分钟
3.7k
今天,我想尝试封装 Float32 类型数据到 SQLite 二进制大对象⌈Binary Large Object (BLOB)⌋ 组中。当然,我可以使用 JSON,protobuf,或是其他一些编码方式。除此之外,NSNumber,NSArray ,NSCoder 和 plist 文件也是不错的选择。

如何使用 iOS 9 的 Core Spotlight 框架

2016-08-30
阅读 12 分钟
2.7k
每一代 iOS 都会为全球的开发者们带来新鲜的“小玩意儿”和对现有技术进行提升。显然,最新的 iOS 9 也不例外,开发者们拥有了全新的框架和 APIs 以方便调用、这可以显著地提升应用程序的水平。Core Spotlight 框架就是其中之一,它包含了许多优秀 APIs,开发者可以很方便地应用在工程中。

在树莓派 3 上构建 Swift 3.0

2016-08-29
阅读 6 分钟
3.6k
作者:iAchieved.it,原文链接,原文日期:2016-06-2译者:pucca601;校对:靛青K;定稿:CMB 有许多小伙伴对在他们的树莓派 3 上构建 Swift 3.0 感兴趣,这篇教程献给那些勇敢的灵魂! 在开始之前你需要准备好以下东西: 一个树莓派 3 一个容量至少 16GB 的 UHS-I/class 10 microSD 卡(我喜欢性价比高的 Patriot EP Se...

为 Swift 的协议实现 Equatable

2016-08-26
阅读 2 分钟
3.8k
之所以说让我感到惊讶,是因为我从未想过让遵循某个协议的所有对象都拥有一个像这样的默认实现。这确确实实地让我陷入了思考!当然,对于 Ayaka 的例子来说这样做很合理——她完全是出于测试的目的添加了这样的代码。

Swift:如何优雅地使用 print()(三)

2016-08-25
阅读 1 分钟
2.5k
我本来没打算写这个系列的第三部分的,但是在前两部分的读者的回复中我得到了一些反馈信息,我觉得看一看人们是怎么建议的是一个很好的阅读和练习的方式。

iOS 与 OSX 内存管理:引用计数

2016-08-24
阅读 4 分钟
3k
在 2009 年,我第一次下定决心要学习如何开发 App。那时候 iOS 3 才刚刚发布,之后,App Store 就成了那些开发 to-do 列表、笔记记录以及其它无聊应用的开发者们的金矿。

Swift:如何优雅地使用 print()(二)

2016-08-23
阅读 3 分钟
3.5k
在上一篇文章中,我聊到了如何通过在打印的日志中使用 emoji 表情来帮助你从冗杂的信息中减少认知负荷。然而,我给的糟糕的实现并不会让你对在自己的代码中使用 emoji 产生强烈的意愿。

推荐给菜鸟的编程书

2016-08-22
阅读 2 分钟
2.6k
有一些刚刚开始编程的人会问我,如何才能从写代码转变成写漂亮的代码,为此,我会推荐一些书,对于刚开始编程的菜鸟来说,这些书非常赞。对于像我这种已经有几年编程经验的老鸟来说,仍能从中学到东西。这些书有很大一部分都是用其他语言如 C、Ruby 或者 Java 写的,读这些书可能是个不小的挑战。还好在大多数情况下,任...

[swift]亲爱的 Erica,请帮我 guard 变量的值为空的情况

2016-08-19
阅读 1 分钟
1.7k
你好,我想知道针对下面这个在 Swift 中出现的特定情况是否有更优雅的解决方法 -- 假设你想要在继续执行后续的代码前,检测一个特定的变量是否为空;通常是会做相反的事情(检测变量是否为有值)。我一般是这么写的:

整型字面量的那些事

2016-08-18
阅读 2 分钟
1.4k
Swift 标准库中一些类型转换相关的协议,Matthew Johson 和我观点相同,认为命名非常糟糕。标准库中大约存在 80 个古怪的协议,其中大约 15% 都与类型转换相关。

构建 iOS 界面:子类化 Views

2016-08-16
阅读 4 分钟
2.5k
这篇文章是 构建 iOS 界面 系列的第四篇,本篇重点介绍:在没有原生系统编程经验的情况下,如何实现 iOS 的设计 —— 这对 Web 设计师及开发者们来说是极好的。这里也提供前面几篇文章:第一部分 - 第二部分 - 第三部分。

Friday Q&A 2016-02-19: 什么是安全区域?

2016-08-15
阅读 4 分钟
2.4k
本周最大的科技新闻是 FBI 正试图迫使苹果公司解锁一个嫌疑人的 iPhone。有趣的是,涉案手机的型号是老款的 iPhone 5c。新款的 iPhone 中加入了苹果的 Secure Enclave(安全区域)技术,用来防止手机被暴力破解,甚至连苹果自己都无法破解。这件事过后许多朋友都在问一个问题:什么是 Secure Enclave?它扮演了什么角色?

在 GitHub 上进行协同写作

2016-08-12
阅读 2 分钟
3.4k
编辑书目的过程是这样的:作者用 Markdown 格式编写章节并直接 push 到 GitHub 的私有仓库。之后我会把我编辑的内容和一些注释或疑问提交并发起 pull request。对于首次审查后章节的变动,作者会开启新的 pull requests 并在 merge 之前允许我继续 push 改动或注释。

将 Measurements 和 Units 应用到物理学

2016-08-11
阅读 6 分钟
2.5k
作者:Ole Begemann,原文链接,原文日期:2016-07-29译者:钟颖;校对:小铁匠Linus;定稿:CMB 更新:2016-08-02为 Xcode 8 beta 4 更新代码 本系列其他文章: (1) Measurements 和 Units 概览 (2) 乘法和除法(本文) (3) 内容提炼 感谢 Chris Eidhof 和 Florian Kugler 帮助我想出这个解决方案。 在上篇文章结束时,...

这样的 StackView 动画,你想到了吗?

2016-08-10
阅读 2 分钟
3.2k
上周,我作为嘉宾参加了 iOSDevCampDC,有幸听到 @atomicbird 关于 StackView 的精彩演讲。我了解 StackView 的基本原理,但它居然还可以如此简单地制作出炫酷的动画,真是毫无防备。

使用 StackView 实现魔术般的视图旋转适配

2016-08-09
阅读 2 分钟
2.9k
上周,我参加了 iOSDevCampDC 并发表了演讲,在这里很荣幸的听到了 @atomicbird 关于 StackViews 的演讲。我之前写过一篇文章,向大家介绍了使用 StackViews 来做简易动画的有多方便,更被使用 StackViews 能够非常简单地完成横竖屏的切换所震惊。

在 Swift 中实现字典

2016-08-08
阅读 5 分钟
3k
虽然 Swift 原生的字典类型实现的很复杂(毫无疑问是为了性能),但是我们可以利用 Swift 提供的工具写出漂亮简洁的实现。我们从一个简单的实现开始,并且逐步添加功能。

午后问答:Swift 中的 guard case = 语法

2016-08-05
阅读 2 分钟
2.8k
布莱恩·卢比的提问:“在 Swift 2 中你如何看待 guard case 语法和 ~= 表达式?” 让我来说的话,guard cases 真的适合带相关值的模式匹配吗?就像下面这样:

高效的 iOS 版本检测方法

2016-08-04
阅读 8 分钟
3.6k
极少数应用程序很“奢侈”的只支持最新版本的 iOS。 设置一个较低的部署目标以及基于特定 iOS 版本的代码分支通常是很有必要的。虽然苹果公司的信息有些矛盾,还是有各种办法来完成这个。最近在这条 tweet上看到有人警告说,不要这样做:

Swift:如何优雅地使用 print()(一)

2016-08-03
阅读 3 分钟
2.7k
Swift beta 版一出世,社区中最具好奇心的开发者们立刻上了这班车,对新版语言的特性进行试验,并撰文讨论他们从中获取的经验。关于 Swift, 有太多提到 Tailor Swift 的 Twitter 了以至于我没办法列举出最好的, 但直到现在这也很有趣,没有人知道为什么?。另一个人们讨论得很多的话题是 Swift 代码中可以使用 emoji 表...

Swift 关联类型

2016-08-01
阅读 6 分钟
2k
作者:Russ Bishop,原文链接,原文日期:2015-01-05译者:靛青K;校对:shanks;定稿:Cee 我想要一个关联类型的圣诞礼物 关联类型系列文章 Swift 关联类型 Swift 关联类型(续) Swift:为什么选择关联类型 有时候我认为类型理论是故意弄的很复杂,以及所有的那些函数式编程追随者都只是胡说八道,仿佛他们理解了其中...

好与坏,Swift 语言面面观(二)

2016-07-29
阅读 4 分钟
2.4k
原文链接 : Good Swift, Bad Swift — Part 2 原文作者 : Kristian Andersen 译文出自 : 掘金翻译计划 译者 : Zheaoli 校对者: owenlyn, yifili09 不久之前,在我写的好与坏,Swift面面观 Part1一文中,我介绍了一些关于在 Swift 里怎样去写出优秀代码的小技巧。在 Swift 发布到现在的两年里,我花费了很长时间去牢牢掌握...