Hi,SwiftGG 翻译组启用了新的域名:swiftgg.team今后翻译组的各项活动将会在新域名下开展,不要错过哦!

作者:hossam ghareeb,原文链接,原文日期:2015-12-09
译者:ray16897188;校对:Channe;定稿:千叶知风

并发(Concurrency)在 iOS 开发中总是被看作是洪水猛兽一般。人们以为它是一个很危险的领域,很多开发者都尽量避免与其接触。更有传闻说你一定要竭尽所能的避免写任何关于多线程的代码。假如你对并发不是很了解却还去使用它的话,那么我同意:并发是很危险的。只是它的危险是因为你不了解它。试想一下常人一生中体验过的危险运动和行为有多少,很多对吧?但是当掌握了之后,就会统统变成小菜一碟。并发是把双刃剑,你应该掌握并学会如何去使用它。它能帮你写出效率高、执行快、反应灵敏的 App,而与此同时,对它的滥用会无情的毁掉你的 App。这就是为什么在开始写任何关于并发的代码之前,先要想一想你为什么要用到并发、需要用到哪个(与并发有关的)API 来解决这个问题。iOS 中我们有很多能用到的 API。在此教程里我会讲到最常用的两个:NSOperationDispatch Queues(派发队列)。

阅读全文

作者:gregg mojica,原文链接,原文日期:2015-10-11
译者:JackAlan;校对:lfb_CD;定稿:numbbbbb

更新: iOS 9 有个 bug 影响 APP 瘦身功能,这个 bug 在 iOS 9.0.2 被修复。从 AppStore 下载 App 时请留意。

iOS 9 已经变成了一个大热门。发布几周后,这个新的操作系统在 iOS 设备上的安装量就超过了一半。它的普及率打破了 iOS 7 在 2013 年的记录。

在写完上一篇文章之后 Search APIs and SFSafariViewController in iOS 9,我们继续学习如何使用 App 瘦身这个 iOS 9 中令人兴奋的特性。在此教程中,我们将探索为什么要使用 App 瘦身以及如何在自己的 App 中使用这个令人兴奋的新特性。

阅读全文

作者:shanks & pmst

本周整理问题如下:

对应的代码都放到了 github 上,有兴趣的同学可以下载下来研究:点击下载

阅读全文

作者:Jesse Squires,原文链接,原文日期:2015-12-17
译者:pmst;校对:numbbbbb;定稿:numbbbbb

本周 Swift.org 又有哪些新鲜事呢? 2015.12.17

Swift.org 社区已经度过其源码开发的第二个星期。倘若你期望过个安静的周末,最好打消这个念头。要知道项目中仍旧还有一大堆事情需要处理,压根就没有减缓的迹象。Swift 团队继续以公开的方式运作,鼓励开发者们加入到贡献的行列中。本周主要修复了一些 crashs 以及更多的 Swift 变革提案。闲话少说,开始本周简讯!

阅读全文

作者:Jesse Squires,原文链接,原文日期:2015-12-10
译者:pmst;校对:numbbbbb;定稿:numbbbbb

上一篇文章中我阐述了自己的想法以及时刻关注 Swift open source 项目的动向,看起来深得社区中许多开发者的喜欢。因此,我将竭尽所能维护该周刊——每周三更新哦,要知道 Swift 开源项目通告就在这一天发布。每周我都会提供高质量的汇总,细述本周发生的变动,更新一些有意思的统计信息,以及提供感兴趣的内容链接。如果你有任何建议,请告诉!。OK!是时候开始安利本周内容了!

阅读全文

作者:Jesse Squires,原文链接,原文日期:2015-12-24
译者:小锅;校对:numbbbbb;定稿:numbbbbb

正如预期的一样,在圣诞放假期间 Swift.org 的步伐慢了下来。我也在放假期间出去玩耍了一番,所以这篇文章会比较平常的来得短。如果你还没准备好,我强烈建议你从代码中抽身出去享受一下假期,防止过劳(译者注:然而我们并没有放假)。😄现在,让我们开始本周简讯!

阅读全文

作者:Dominik Hauser,原文链接,原文日期:2016-1-1
译者:小铁匠Linus;校对:saitjr;定稿:numbbbbb

本文会介绍 iOS 的响应链以及如何在 Target-Action 中使用它。

响应链(The Responder Chain)

在 iOS 中,事件(比如,触摸事件(touch event))都使用响应链来传递。响应链由响应者对象(Responder Objects,苹果官方术语)构成。如果你看过官方文档,可能会注意到 UIViewUIViewController 都是响应者对象。这就意味着, UIViewUIViewController 都继承自 UIResponder ,如下图:

阅读全文

作者:Arthur Knopper,原文链接,原文日期:2015-12-21
译者:pmst;校对:Cee;定稿:千叶知风

UIAlertController 类不仅用于呈现警告弹窗,还能够提供 Text Fields 来获取文本信息输入。本教程演示了从用户处获取账号和密码,并打印到终端中。此教程开发环境为 Xcode 7.2 以及 iOS 9。

打开X code,创建一个 Single View Application。输入项目名称:IOS9TextFieldAlertControllerTutorial,接着填写你独有的 Organization Name 以及 Organization Identifier。选择语言为 Swift 并确保设备为 iPhone 。

阅读全文

作者:Natasha The Robot,原文链接,原文日期:2015-12-18
译者:JackAlan;校对:Cee;定稿:千叶知风

在我工作的一个团队中,我们有很多关于安装 CocoaPods 的问题。团队成员拥有不同的 cocoapods gem 的安装版本,并且当有人运行 pod install 时,会将事情搞得一团糟。

我们最终不得不委托一人安装 CocoaPods,并且把工程推到 GitHub 上以供我们使用。这显然是不够灵活的,并且对于我们团队或者是委托人来说都不是一个很满意的解决方式。

阅读全文

作者:Dominik Hauser,原文链接,原文日期:2015-12-08
译者:pmst;校对:星夜暮晨;定稿:Cee

假设现在要在某个视图(view)中放置三个子视图(subviews)。其中两个子视图放置在上方,第三个视图紧挨着它们放到下方。不过上方的两个视图高度不定,并且你不知道哪个更高一些。现在要求我们使用自动布局(Auto Layout)来控制下方视图和上方视图之间间距至少 10 单位像素。

阅读全文

作者:reinder de vries,原文链接,原文日期:2015-11-23
译者:小铁匠Linus;校对:saitjr;定稿:numbbbbb

我们经常说,程序员喝进去的是咖啡,吐出来的是代码。让我们换一个角度去思考,来做一个显示附近咖啡店的 App。

这篇文章中,用到了以下技能:

  • Swift,Xcode 和 Interface Builder(Auto Layout, Constraints 和 Storyboards)
  • Realm,一种本地存储方案,轻量级的 Core Data
  • 使用 Foursquare 和 Das Quadrat 库访问 REST API
  • CocoaPods 和 Geolocation

这个 App 可以检测当前用户的 500 平方米的范围,并从 Foursquare 拿到附近咖啡店的地理信息。我们将使用 map view(MKMapView)和一个 table view(UITableView)来展示数据。当然,还要使用 Realm 来过滤数据,并使用闭包来对数据进行排序。

阅读全文

作者:Jesse Squires,原文链接,原文日期:2015-12-06
译者:pmst;校对:numbbbbb;定稿:numbbbbb

译者注:这个系列的关注重点是 Swift 开源项目本身的发展,作者会截取每周发生的大事(比如合并了一个大改动)并进行分析,还会写一些有趣的小发现,很有意思。我们已经拿到翻译授权,会每周进行更新,欢迎关注。

革命起源:2015.12.06

Apple 宣告 “Swift即将开源” 的随后几天里,项目的活跃度让人瞠目结舌。回想今年早些时候的 WWDC 大会上 Apple 提及 Swift 不久会被开源,我可不认为任何人会像这样期待该发布版本。

阅读全文

作者:Mike Ash,原文链接,原文日期:2015-12-11
译者:riven;校对:Cee;定稿:千叶知风

即便你已经在火星的一个洞穴里,紧闭着你的双眼并且捂住你的耳朵,也避免不了 Swift 已经开源的事实。正因为开源,我们能够更加方便地去探索 Swift 中的很多有趣的特性,其中之一便是 Swift 中弱引用是如何工作的问题。

阅读全文

作者:Erica Sadun,原文链接,原文日期:2015-12-15
译者:小袋子;校对:Cee;定稿:numbbbbb

记得我曾分享过一些想法和建议,比如:

newtype

一个是建议 Swift 推出一个 newtype 的关键词,它可以添加完全不同于原生的可扩展的派生类型。例如:

newtype Currency = NSDecimal

这创建了一个拥有所有 NSDecimal 所有行为的 Currency 类型。然而,你不能让一个 NSDecimal 类型的元素和一个 Currency 类型的元素相加,因为 Swift 中有类型检测。此外,你也可以扩展 Currency 类型。这样看起来就更加有针对性,因为不需要子类化或者添加新的存储属性。

阅读全文

作者:Mike Ash,原文链接,原文日期:2015-11-20
译者:Cee;校对:千叶知风;定稿:numbbbbb

在现代的编程语言中,子类型(Subtypes)和超类型(Supertypes)已经成为了非常常见的一部分了。协变(Convariance)和逆变(Contravariance)则能告诉我们什么时候使用子类型或超类型会优于原来使用的类型。这在我们使用的大多数编程语言中非常的常见,但是很多开发者仍然对这些概念感到模糊不清。今天我们就来详细讨论一下。

阅读全文

作者:shanks

本周整理问题如下:

对应的代码都放到了 github 上,有兴趣的同学可以下载下来研究:点击下载

阅读全文