In Xcode 8 Beta 5 wurde der Initialisierer für DispatchQueue
geändert, um separate Argumente für Qos (Quality of Service), Attribute und Autorelease-Häufigkeit zu akzeptieren. Obwohl ich keine Probleme hatte, meinen Code in den neuen Initialisierer zu konvertieren, bin ich unsicher bezüglich der Bedeutung einiger Attribute, insbesondere der Autorelease-Häufigkeit.AutoreleaseFrequency on DispatchQueue in Swift 3 Beta 5
Zum Beispiel in Xcode 8 Beta 3 und Swift 3, konnte ich eine serielle DispatchQueue
als solche erstellen:
let serialQueue = DispatchQueue(label: "Concurrent Map", attributes: [.serial, .qosBackground], target: nil)
In Xcode 8 Beta 5 und Swift 3:
let serialQueue = DispatchQueue(label: "Concurrent Map", qos: .background, attributes: [], autoreleaseFrequency: .inherit, target: nil)
Meine Fragen sind:
- In der neuen DispatchQueue.Attributes, .serial ist nicht länger ein Mitglied. Bedeutet dies, dass das Fehlen von .concurrent eine serielle Warteschlange erstellt. Ein erster Test, den ich in Swift Playgrounds gemacht habe, scheint dies zu bestätigen. Kann jemand anderes bestätigen?
- Ich sehe, dass DispatchQueue.AutoreleaseFrequency ist ein neuer Typ mit .inherit, .Never und .WorkItem. Was bedeuten diese? Ich habe etwas über GCD und Autoreleasing geforscht, aber ich bin nicht sehr vertraut mit dem Konzept der Autorelease-Pools.
Apple hat die Angewohnheit, neue Dinge oft schlecht zu dokumentieren, und es kann passieren, ob sie jemals zurückkommen und die Dokumentation machen. Die 'allowsSelfSizing' -Eigenschaft in' UIInputView' existiert seit iOS 9, ohne dass eine Dokumentation hinzugefügt wurde, um zu erklären, welche Wirkung sie hat, und sie scheint keinerlei Wirkung zu haben, egal wie sie die Größe ändern kann. – Gavin