2016-06-20 1 views
11

Laut swift.org/migration-guide, Dispatch und verwandte Funktionen haben eine große neue schnelle Schnittstelle (z. B. dispatch_async ->DispatchQueue.async). Es wurden auch andere Fundamenttypen wie Data und Date Werttypen anstelle von NSData und NSDate hinzugefügt.Swift3 Linux vc Mac DispatchQueue

In der Open Source-Version von swift3 (Entwicklervorschau 1) unter Linux, ubuntu15.10 lehnt der Compiler jedoch alle diese Änderungen ab. In der Tat, wenn ich mir die Open-Source-Version von swift und swift-corelibs auf GitHub anschaue, sehe ich tatsächlich keine dieser Änderungen. Da es auf der XCode-Entwicklervorschau kompiliert wird, hat mich dies entweder glauben lassen: Ich mache etwas falsch unter Linux oder diese Änderungen wurden in der Apple-Zweigstelle gemacht und nicht in der Open-Source-Branche. Kann jemand das überprüfen und wenn letzteres der Fall ist, und wenn ja, woher wissen wir, welche Änderungen in der Apple-Zweigstelle gegenüber der Open-Source-Branche sein werden?

+2

Wenn ich mich nicht irre, sind die Typen Datum, URL usw. hier: https://github.com/apple/swift/tree/master/stdlib/public/SDK/Foundation und Versand hier: https: //github.com/apple/swift/tree/master/stdlib/public/SDK/Dispatch –

Antwort

3

Dank Brad Larson für das Finden der Foundation und Dispatch Overlays in der Quelle. Nach swift.org:

SDK Overlays: Spezifisch für Apple-Plattformen, die SDK-Overlays (implementiert in stdlib/public/SDK) zur Verfügung stellen Swift spezifische Ergänzungen und Änderungen an bestehenden Objective-C-Frameworks zur Verbesserung ihrer Zuordnung in Swift. Insbesondere bietet das Foundation-Overlay eine zusätzliche Unterstützung für die Interoperabilität mit Objective-C-Code .

tl; dr alles in diesen Ordnern sind nur Apple-Plattformen. Immer noch nicht sicher, warum sie die Dispatch-Overlays auf Apple-Plattformen beschränkt haben, da libdispatch auch Open Source und Targeting-Linux ist, aber dies beantwortet meine erste Frage.

Bearbeiten: konnte über schnelle Mailing-Listen bestätigen, dass die Dispatch-Overlays ein gewisses Maß an Objective-C-Laufzeit haben. Es gibt Arbeit, um sie für Nicht-Darwin-Plattformen zu implementieren, aber keine Garantie für das Timing.

0

Überprüfen Sie die Swift 3 Evolution Github page. Sie listen alle vorgeschlagenen Änderungen in der Sprache auf und trennen sie durch diejenigen, die implementiert wurden und diejenigen, die nicht umgesetzt wurden. Vorschlag SE-0088: Modernisierung libdispatch für Swift 3 Benennung ist auf der "noch zu implementierenden Liste" wie viele andere Änderungen.

Soweit Daten und Datum betroffen sind, kann ich nicht sagen, da ich glaube, dass dies ein Teil der kommenden Core Libraries ist, und ich konnte diese noch nicht im Detail betrachten. Vielleicht können Sie auch die Seite Swift Core-Libs Github überprüfen, obwohl die Statusseite auf Arbeit verweist, die mit NSData und NSDate ausgeführt wurde, wobei die neueren Datentypen nicht erwähnt werden.

11

Ab der Version 3.0 von Swift ist GCD unter Linux mit einfachem import Dispatch verfügbar, was etwas verwirrend ist, da es auf iOS/MacOS nicht benötigt wird, wo das Modul Dispatch standardmäßig importiert wird.