iOS 移动开发周报 - 第 47 期

LukeKnight 4年前
   <p>上周关于 Dash 被苹果下架的事情有了来自 苹果的解释 ,苹果说 Dash 进行了刷榜,具体来说,是在 Dash 的评价中发现了一些明显带有欺骗性的评分。苹果同时说这个决定是最终的,并且不可申述(final and can’t be appealed),所以这件事情可能最终的结果就是这样了。</p>    <p>我们从这件事情中可以看出,苹果对于刷榜的行为变得越来越严厉了。但是在国内,刷榜的行为还是普遍存在,而且大多数都没有受到惩罚。例如,我们公司的三款产品都没有刷榜,但是我们的竞争对手其实都有明显的刷榜行为。希望苹果能够有机会也整治一下国内的环境,让大家都在一个公平的环境中竞争。</p>    <h3><strong>Swift 4</strong></h3>    <p>是的,Swift 4 开始开发了,在 Swift 4 在 GitHub 的主页上,苹果公布了 Swift 4 的主要目标 。时间上,苹果计划在 2017 年晚些时候正式发布 Swift 4。苹果希望将 Swift 4 的开发分为两个阶段:</p>    <ul>     <li> <p>第一阶段:关注于核心的一些需求,以及 ABI 的稳定性。苹果不希望在 Swift 4 中引入 ABI-breaking 的改变。</p> </li>     <li> <p>第二阶段:该阶段希望在 2017 年春能够开始讨论,在第一阶段的任务完成后,可以增加一些或大或小的新特性。</p> </li>    </ul>    <h3><strong>iDev 大会</strong></h3>    <p>​ iDev 大会 是一场由开发者自己办的技术会议,会议内容主要面向苹果的开发者,我是这次会议的出品人。</p>    <p>今年 iOS 的话题其实集中在 Swift 语言、函数式编程、跨平台方案,所以这方面的话题本次大会都有涉及。另外 iOS 安全一直是被人们较为忽视的一个方面,本次大会我在这方面也特别有设计议题讨论。</p>    <p>考虑到 iDev 大会希望涉及苹果全平台的技术,所以本次大会我们也安排了关于 macOS、watchOS 和 HomeKit 的议题。</p>    <p>对了,购票时输入我的优惠码:tangqiao,可以获得折扣票价再打 85 折哟。</p>    <h2><strong>文章</strong></h2>    <h3><strong>闭包的 escaping 与 non-escaping</strong></h3>    <p><a href="/misc/goto?guid=4959720946155174012" rel="nofollow,noindex">Optional Non-Escaping Closures</a> : 本文讨论了 Swift 中的闭包的 escaping 的情况。所谓 escaping,就是指闭包在作为参数,传递给相应函数之后,相应函数执行完成了,但是闭包可能还需要被调用。所以,这个闭包似乎是逃离(escaping)了函数的作用时间。因为按理说函数执行完了,相应的参数应该就没用了,但是对于 escaping 的闭包,却不是这样。</p>    <p>什么情况下会出现这种情况呢?最常见的场景就是异步调用。比如我们发起一个网络请求,传入了一个闭包作为回调参数。这个闭包显然需要在网络请求结束时,才会被调用,这就是一个 escaping 的闭包。类似的还包括:我们把一些闭包放到 GCD 提供的 Dispatch Queue 中,也会造成 escaping 的闭包。</p>    <p>在本文中,作者讨论了一种比较特别的现象:只要一个闭包是 Optional 的,则它一定会是一个 escaping 的闭包。作者讨论了产生此问题的原因,并且提供了一些解决方案。</p>    <h3><strong>把第三方 iOS 应用转成动态库</strong></h3>    <p>《黑科技:把第三方 iOS 应用转成动态库》 ,本文介绍了一个自己写的工具,能够把第三方 iOS 应用转成动态库,并加载到自己的 App 中,文章最后会以支付宝为例,展示如何调用其中的 C 函数和 OC 方法。另</p>    <h2><strong>视频</strong></h2>    <p>本周视频推荐 objc.io 出的一期视频: 手写一个 Parser 。</p>    <h2><strong>工具</strong></h2>    <p>本周推荐的工具,是一个 Xcode 8 的效率工具。它可以方便你在任何时候输入需要 import 的内容。其实这类工具在别的平台都是 IDE 自动提供的,以前我在用 Eclipse 写后台的时候,用了一个需要 import 的库的类,只需要按 cmd + shift + o,IDE 就会自动把这些需要 import 的头文件帮你填上,以节省时间。Xcode 在这方面,还有挺多需要加强的。Anyway,Xcode 的 extension 这个机制也让我们能够自己动手丰衣足食了。</p>    <p>该工具在 GitHub 上的地址是 Import ,以下是使用起来的效果动画:</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/c7431b80c66506ebebc58a0058b7e70e.gif"></p>    <p> </p>    <p>来自:http://blog.devtang.com/2016/10/16/ios-weekly-47/</p>    <p> </p>