Xcode 8ベータ5では、DispatchQueue
のイニシャライザが変更され、qos(サービス品質)、属性、および自動解放の頻度に別々の引数が使用できるようになりました。新しいイニシャライザで動作するようにコードを変換するのに問題はありませんでしたが、いくつかの属性、特にオートリリースの頻度の意味は不明です。例えばSwift 3のDispatchQueueでのAutoreleaseFrequency 5
は、Xcodeの8ベータ3及びスイフト3において、IのようなシリアルDispatchQueue
を作成することができた:Xcodeの8ベータ5及びスウィフト3において
let serialQueue = DispatchQueue(label: "Concurrent Map", attributes: [.serial, .qosBackground], target: nil)
:
let serialQueue = DispatchQueue(label: "Concurrent Map", qos: .background, attributes: [], autoreleaseFrequency: .inherit, target: nil)
私の質問は次のとおりです:
- 新しいDispatchQueue.Attributesでは、.serialはもはやメンバーです。これは、.concurrentがないとシリアルキューが作成されることを意味しますか?私がSwift Playgroundsで行った最初のテストでは、これを確認しているようです。他の誰も確認できますか?
- DispatchQueue.AutoreleaseFrequencyは、.inherit、.never、および.workItemの新しい型です。これらはどういう意味ですか?私はGCDとオートリリースに関するいくつかの研究をしましたが、私はオートリアーゼプールのコンセプトに慣れていません。
アップルでは、しばしば新しいことを文書化しにくい習慣があり、ドキュメンテーションをやり直すかどうかについて、ヒットしたり、逃したりする可能性があります。 'UIInputView'の' allowsSelfSizing'プロパティは、iOS 9以来存在していました。ドキュメントには何の効果があるのかを説明するために追加されていませんし、サイズを変更できるように設定されていても効果はありません。 – Gavin