Swift 编程思想,第一部分(补遗):牺牲小马

2016-03-21
阅读 2 分钟
2.5k
我的系列文章《Swift 编程思想》第一部分发表后,在 Twitter 上收到一些不错的反馈。现在,我在这些评论的基础上谈一谈什么时候可以使用!来牺牲小马(译者注:本篇文章中的!表示隐式解析可选类型)。

Swift 现在可用于所有的 ARMv6 树莓派 (1,Zero)

2016-03-18
阅读 1 分钟
1.7k
经过上百小时的编译、各种各样的尝试,甚至弄坏几支 USB 后,我终于能够跟大家分享一下如何在 ARMv6 处理器上实现 Swift 2.2 的初步编译(基于 Raspbian)。

你是否依然应该学习 Objective-C 呢?

2016-03-17
阅读 1 分钟
2.7k
随着 Swift 的引入,Apple 生态系统已坐拥两门重要的编程语言。与此同时 Swift 也逐渐成为热门,那么问题来了:你是否依然应该学习 Objective-C 呢?

如何从 Parse 手中拯救你的应用

2016-03-16
阅读 6 分钟
3.2k
今年 1 月 28 号,Parse 宣布它将会关闭自己的服务。他们正在慢慢减少已提供的“后端服务”,打算在 2017 年 11 月 28 日全面撤出该服务。

Swift 通知推送新手指南

2016-03-15
阅读 15 分钟
3.3k
“推送通知?喔,不!”。是的,这就是我被叫去实现一个 iOS 应用中的推送通知功能时,脑海中闪过的第一念头,而且我相信你们也曾经有过这样的想法。这不是因为推送通知很难使用,而是在能够测试推送一条单独的通知前有很多步操作需要完成,这些操作步骤最终几乎把所有开发者弄得晕头转向。不过我们再坚持一会儿,从头开始...

Hirundo:在 OS X 上轻松获取 Swift 邮件列表

2016-03-14
阅读 3 分钟
2.6k
如果你对 Swift 感兴趣,邮件列表是一个特棒的资源。像 Swift-Evolution 邮件列表里就讨论了很多关于语言未来的发展方向和走势的内容。订阅它肯定会帮助你很好的理解 Swift 的设计理念和新特性。Swift-Dev 邮件列表是从另一个方面阐述 Swift 内部的工作原理。如果你对这些不感兴趣,另外还有一个 Swift-Users 邮件列表是...

Swift 新进展(2016年1月份)

2016-03-11
阅读 1 分钟
2.1k
为了进一步的改进,SE-0018,这个灵活的逐个成员初始化提案,没有被接受,也没有被拒绝,回到了进展清单。它提议将逐个成员初始化从结构体扩展到类,以避免过度的模板代码。虽然开始时具体的实现细节并不清楚,但很多开发者喜欢它的核心理念。苹果承诺很快就会反馈具体意见。(校者注:已被驳回)

初探 Swift Sequences 和 Generators

2016-03-10
阅读 5 分钟
2.1k
作者:uraimo,原文链接,原文日期:2015-11-12译者:CoderAFI;校对:Cee;定稿:numbbbbb 在这篇文章中我们将介绍 Swift 2 自定义序列,并举例说明有限序列和无限序列的区别,本文是 Swift and the functional approach 系列其中一篇。 你可以访问 GitHub 或下载 zip 文件来获取本文示例程序的 playground。 SequenceT...

发现循环引用的方法

2016-03-09
阅读 3 分钟
2.9k
随着在 iOS 5 中 介绍的自动引用计数(ARC)的使用,内存管理变得非常简单。但 ARC 不能处理所有情况,所以处理好 App(应用程序) 的内存管理还是非常重要的。例如,可能存在所谓的循环引用。就比如在应用程序中尽管没有任何可访问的引用指向视图控制器,但视图控制器也没有被销毁。如果存在这种循环引用,那么每次出现这...

别让双手闲下来,来做一些练手项目吧

2016-03-08
阅读 2 分钟
3.3k
这个问题很有趣。理想情况下,如果做一款 App 又不是为了练手,那么你可能会选择你熟悉的技术。先找到自己感兴趣的、有能力解决的问题,然后再尝试用最佳实践去解决它。但我完全能想象,作为新开发者,他可能还没准备好去应对从头开发一款 App 所要解决的问题。怎么办呢,我条件反射就是「学做一款 Twitter App」。Twitt...

Swift:使用自定义初始化方法进行依赖注入

2016-03-07
阅读 2 分钟
3.2k
作者:Natasha The Robot,原文链接,原文日期:2016-01-08译者:littltedogboy;校对:Cee;定稿:千叶知风 作为我今年的第一个项目,我正在做 @catehstn’s iOS Unit Testing Workshop 的 Swift 版本。如果感兴趣的话,可以在这里注册。 在我写代码和测试期间,我遇到了下面的问题... 假设我使用 Swift 创建了一个简单...

Swift GYB 简易教程

2016-03-05
阅读 2 分钟
3k
如果你有多个结构体/类/枚举在共享同一个通用的结构,并且你不想维护那些相同的代码,就可以用 GYB。如果你经常需要给不同的对象写一些相似的方法或者属性,那你的维护工作(由于粗心的复制/粘贴导致的错误)就可以全部交给 GYB。这个工具在 Swift 代码库 中广泛使用,很容易就可以将它应用到你的项目中。

SE-0005,一个你可能想知道的 Swift 改进提案

2016-03-03
阅读 1 分钟
2k
这个提案描述了如何改进 Swift 的「Clang Importer」,它负责将 C 和 Objective-C 的 API 导入到 Swift 中。通过这样的改进,Objective-C 的函数、类型、方法、属性等的名称可以被翻译成更加符合 Swift API 设计准则的名称。这份准则是 Swift 3 的一部分。我们的解决方案专注在 Objective-C 的 Cocoa 编码规范 和 Swift ...

在 Linux 中使用 Swift 进行 TCP Sockets 编程

2016-03-01
阅读 6 分钟
3.7k
当然,我只是开了个玩笑。HTTP 的出现给客户端-服务器(client-server)应用带来更多的变化,当然它也是 REST 应用的基础。HTTP 带给我们的不仅是将数据在网络中打包传输,还包括一个一致认可的包协议架构(从某种程度上来讲,是一个在特定端口下使用的标准)。可以进行的动作有:GET,POST,PUT 等。HTTP 头部本身也使...

也谈 Swift 日志

2016-02-29
阅读 3 分钟
9.8k
Apple 发布 Swift 不久,就有大量的开发者提供了日志静态库,但 Lumberjack 这样的好项目并不能在 Xcode 外执行。我们开发了 swiftlog ,这是一个简单的日志记录程序。

在 Swift 中截取 C 字符串

2016-02-27
阅读 3 分钟
2.2k
Swift 中的字符串处理一直都在变化,一直不断发展。在研究 Swift 中某些字符串执行操作的演变过程中,我注意到了 Joel Spolsky 十几年前写的这篇文章),他告诫我们所有人一定要顺应潮流,从一开始就要让我们的应用程序支持 Unicode。Swift 1.0 没有忽视这种请求,它确实让我们可以简单地使用范围 (Range) 这种「自然」的...

Swift 3.0 介绍

2016-02-25
阅读 4 分钟
6.4k
Swift 2.2 已经从 master 分支移到了 swift-2.2 分支。现在,Swift 3.0 版本在仓库的 master 分支上开发。克隆编译完整的 Swift 3.0 源代码的方法已经和之前截然不同了。比起之前需要克隆逐个仓库,现在你只需要:

我的开源之旅

2016-02-24
阅读 4 分钟
3.1k
正如大家所知的,Swift 在本周的早些时候开源了(校对注:按照原文的发布时间来看确实是「本周」)。对社区来说这无疑是一个爆炸性的消息,已经有很多的帖子在讨论这件事会产生的一系列后果。

在 Cocoa 中实现 ICU 文本变换

2016-02-23
阅读 3 分钟
2.4k
ICU 的字符串变换很酷。ICU 库提供了一整套强大的文本变换功能,在处理用户输入、特别是当你的程序需要处理一些英语之外的语言或者非拉丁字符时非常有用。举个例子,你可以把一段简体中文转码成拉丁字符,同时清除音调符号、修饰符和隐藏字符,最后全部转换成小写,使其成为可以被你的数据库搜索 API 识别的字符串,而所...

在 GitHub 上创建一个 Swift 包:其实一点也不简单

2016-02-22
阅读 2 分钟
2.4k
作者:Erica Sadun,原文链接,原文日期:2015-12-27译者:DianQK;校对:Cee;定稿:numbbbbb 我觉得我不需要再介绍 Git 了,大家应该已经很熟悉了。 Package.swift 我认为建立一个 git 仓库来使用包管理工具不需要学什么新东西。毕竟使用一个包仅仅是意味着贴一行代码到一个 app 包中,不是吗? 我创建了一个 Package....

探索 API 指南的大世界

2016-02-19
阅读 2 分钟
2.3k
邮件列表中对 SE-0023 API 设计指南(SE-0023 API Design Guidelines) 有大量讨论。你可以在 swift.org 上找到原始的指南,我强烈推荐你阅读一下。这个指南的大部分内容我都很喜欢,不过我认为有些命名和标签规定过于严格。

为你的 Swift Packages 命名

2016-02-18
阅读 1 分钟
1.7k
于是乎,在整理我大量 Swift 代码中的一小部分时,我决定利用一下 Swift Package Manager 的优势,将其中的一下推到 GitHub 上。这些都是我!做!的!

静态类型的 NSUserDefaults

2016-02-17
阅读 9 分钟
2.2k
一年前,在 Swift 推出不久后,我观察到许多 iOS 开发者仍然以 Objective-C 的开发习惯来写 Swift。而在我眼中,Swift 是一门全新的语言,有别于 Objective-C 的语法、设计哲学乃至发展潜力,因此我们更应探索出一条属于 Swift 独有风格的发展道路。我在之前的文章 Swifty methods 中已经探讨过在 Swift 中如何清晰、明...

如何处理 Swift 中的异步错误

2016-02-16
阅读 8 分钟
3.8k
作者:Olivier Halligon,原文链接,原文日期:2016-02-06译者:ray16897188;校对:小锅;定稿:numbbbbb 在之前的一篇文章中,我介绍了如何在Swift中使用throw做错误处理。但是如果你处理的是异步流程,throw 就无法胜任,该怎么办? throw 和异步有啥问题? 回顾下,我们可以像下面这样,在一个可能失败的函数中使用 ...

如何成为一名入门级 iOS 开发者

2016-02-15
阅读 3 分钟
3.4k
最近我一直在帮我的几个朋友开始学习 iOS 开发,然后被问到一个开始学习需要的清单。听起来很适合为此写一篇博客。闲话少说,我给你列出来要成为一名入门级的 iOS 开发者必须掌握的知识清单(不分先后顺序)。

使用 guard 的正确姿势

2016-02-14
阅读 5 分钟
3.8k
guard 是 Swift 2 中我最喜爱的特性之一。虽然完全不使用 guard 也没有什么影响,它只是给我们提供了更微妙的句法表达,但是如果能够正确使用 guard 语句,无疑是一件令人愉快的事。它可以让我们的方法表意更加明确,更易于阅读,它能够表达『提前退出』的意图,同时提高了程序的健壮性。

playground 页面排序和共享

2016-02-06
阅读 2 分钟
2.7k
如果在同一个文件中有多个 playground 页面(我就是这样),那么你会发现如果按照字母排序,查找起来会很方便。使用 Edit > Sort > ByName 来整理你的文件结构。

每周 Swift 社区问答 2016-02-03

2016-02-05
阅读 5 分钟
2k
本周共整理了 5 个问题。主要涉及到的知识点有:defer关键字,emoji表情提取,便利构造器的继承,元组的存在感和如何重写didSet。

如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用

2016-02-03
阅读 18 分钟
3.1k
从很久以前开始,社交网络就成为了我们每天生活的一部分了。同时,社交网络也是我们程序员生活的一部分,绝大多数的应用都对进行了集成,用于接收和发送用户的信息。在大多数情况下,用户都被要求能在应用中绑定每个社交网络,并且授权该应用能代表用户发起请求。有很多这样的社交网络,比如 Facebook 和 Twitter 是使用...

更加 Swift 化的 Collection View 和 Table View Cells

2016-02-02
阅读 6 分钟
1.8k
这是一个常见的场景:你有一个 tableView 或者一个 collectionView,并且里面含有大量不同种类的内容。你想做到基于不同种类的内容而展示不一样的 cell ,而且这些 cell 都混合在同一个部件里(原谅我站在艺术的角度去设计),它看起来就如下图所示: