剑客
关注科技互联网

iOS 移动开发周报 – 第 47 期

上周关于 Dash 被苹果下架的事情有了来自 苹果的解释 ,苹果说 Dash 进行了刷榜,具体来说,是在 Dash 的评价中发现了一些明显带有欺骗性的评分。苹果同时说这个决定是最终的,并且不可申述(final and can’t be appealed),所以这件事情可能最终的结果就是这样了。

我们从这件事情中可以看出,苹果对于刷榜的行为变得越来越严厉了。但是在国内,刷榜的行为还是普遍存在,而且大多数都没有受到惩罚。例如,我们公司的三款产品都没有刷榜,但是我们的竞争对手其实都有明显的刷榜行为。希望苹果能够有机会也整治一下国内的环境,让大家都在一个公平的环境中竞争。

Swift 4

是的,Swift 4 开始开发了,在 Swift 4 在 GitHub 的主页上,苹果公布了 Swift 4 的 主要目标 。时间上,苹果计划在 2017 年晚些时候正式发布 Swift 4。苹果希望将 Swift 4 的开发分为两个阶段:

  • 第一阶段:关注于核心的一些需求,以及 ABI 的稳定性。苹果不希望在 Swift 4 中引入 ABI-breaking 的改变。
  • 第二阶段:该阶段希望在 2017 年春能够开始讨论,在第一阶段的任务完成后,可以增加一些或大或小的新特性。

iDev 大会

iDev 大会 是一场由开发者自己办的技术会议,会议内容主要面向苹果的开发者,我是这次会议的出品人。

今年 iOS 的话题其实集中在 Swift 语言、函数式编程、跨平台方案,所以这方面的话题本次大会都有涉及。另外 iOS 安全一直是被人们较为忽视的一个方面,本次大会我在这方面也特别有设计议题讨论。

考虑到 iDev 大会希望涉及苹果全平台的技术,所以本次大会我们也安排了关于 macOS、watchOS 和 HomeKit 的议题。

对了,购票时输入我的优惠码:tangqiao,可以获得折扣票价再打 85 折哟。你也可直接访问以下网址获得优惠过的价格:

http://www.bagevent.com/event/207773?discountCode=tangqiao

文章

闭包的 escaping 与 non-escaping

Optional Non-Escaping Closures : 本文讨论了 Swift 中的闭包的 escaping 的情况。所谓 escaping,就是指闭包在作为参数,传递给相应函数之后,相应函数执行完成了,但是闭包可能还需要被调用。所以,这个闭包似乎是逃离(escaping)了函数的作用时间。因为按理说函数执行完了,相应的参数应该就没用了,但是对于 escaping 的闭包,却不是这样。

什么情况下会出现这种情况呢?最常见的场景就是异步调用。比如我们发起一个网络请求,传入了一个闭包作为回调参数。这个闭包显然需要在网络请求结束时,才会被调用,这就是一个 escaping 的闭包。类似的还包括:我们把一些闭包放到 GCD 提供的 Dispatch Queue 中,也会造成 escaping 的闭包。

在本文中,作者讨论了一种比较特别的现象:只要一个闭包是 Optional 的,则它一定会是一个 escaping 的闭包。作者讨论了产生此问题的原因,并且提供了一些解决方案。

把第三方 iOS 应用转成动态库

《黑科技:把第三方 iOS 应用转成动态库》 ,本文介绍了一个自己写的工具,能够把第三方 iOS 应用转成动态库,并加载到自己的 App 中,文章最后会以支付宝为例,展示如何调用其中的 C 函数和 OC 方法。另外,本文首发在我的微信公众号:iOSDevTips 中,如果你还没有关注过,请扫码关注哟:

iOS 移动开发周报 - 第 47 期

视频

本周视频推荐 objc.io 出的一期视频: 手写一个 Parser

工具

本周推荐的工具,是一个 Xcode 8 的效率工具。它可以方便你在任何时候输入需要 import 的内容。其实这类工具在别的平台都是 IDE 自动提供的,以前我在用 Eclipse 写后台的时候,用了一个需要 import 的库的类,只需要按 cmd + shift + o,IDE 就会自动把这些需要 import 的头文件帮你填上,以节省时间。Xcode 在这方面,还有挺多需要加强的。Anyway,Xcode 的 extension 这个机制也让我们能够自己动手丰衣足食了。

该工具在 GitHub 上的地址是 Import ,以下是使用起来的效果动画:

iOS 移动开发周报 - 第 47 期

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址