2016-06-20 25 views
11

根据swift.org/migration-guide,调度和相关函数有一个伟大的新的快速接口(例如dispatch_async - >DispatchQueue.async)。另外还添加了其他基础类型,如DataDate值类型,而不是NSDataNSDateSwift3 Linux vc Mac DispatchQueue

然而,在Linux上swift3的开源版本(开发者预览版1),ubuntu15.10编译器拒绝所有这些变化。实际上,在github上查看swift和swift-corelib的开源版本,我实际上并没有看到任何这些变化。由于它将在XCode开发人员预览版上编译,所以这导致我相信:我在Linux上做错了什么,或者这些更改是在Apple分支而不是在开源分支中做出的。任何人都可以验证这一点,如果后者是这种情况,如果是的话,我们如何知道Apple分支和开源分支会有哪些变化?

+2

如果我没有记错,日期,URL等类型在这里:https://github.com/apple/swift/tree/master/stdlib/public/SDK/Foundation这里派遣:HTTPS: //github.com/apple/swift/tree/master/stdlib/public/SDK/Dispatch –

回答

3

感谢Brad Larson用于查找源代码中的FoundationDispatch叠加层。据swift.org:

SDK叠加:具体到苹果的平台上,SDK覆盖 (在STDLIB /公/ SDK实现)提供斯威夫特特定补充 和修改现有的Objective-C框架,以提高他们的 映射到Swift。特别是,基础覆盖为与Objective-C代码的互操作性提供了额外的支持。

TL;在这些文件夹中的任何医生都只有苹果平台。仍然不确定为什么他们限制调度覆盖到苹果平台,因为libdispatch也是开源的和针对Linux,但这回答了我的第一个问题。

编辑:能够通过SWIFT邮件列表的调度覆盖做对Objective-C运行一些依赖确认。有一些工作让他们在非达尔文平台上实施,但没有时间保证。

0

退房的Swift 3 Evolution Github page。他们列出了所有对该语言的建议修改,并将其与已实施和未实施的修订分开。建议SE-0088:将Swift 3命名的libdispatch现代化与许多其他更改一样处于“尚未实施的列表”中。

至于数据和日期而言,我不能说,因为我相信这是即将到来的核心库的一部分,我还没有能够在那些非常详细看呢。也许你也可以检查Swift Core-Libs Github页面,虽然状态页面引用了NSData和NSDate的工作,但没有提到更新的数据类型。

11

从Swift 3.0发布版本开始,GCD在Linux上可用,简单的import Dispatch,稍有混淆,因为它在iOS/macOS上不需要,默认情况下导入Dispatch模块。