iOS は、ダウンロード後にスペースを解放する必要があるとすぐにアセットを消去します。
ここの「保存優先度の設定」セクションで説明されているように、アセットの保存優先度を変更しても、システムによるパージが妨げられることはありません。
オンデマンド リソースをダウンロードするための関連コードは次のとおりです。
func requestResourceWith(tag: [String],
onSuccess: @escaping () -> Void,
onFailure: @escaping (NSError) -> Void) {
currentRequest = NSBundleResourceRequest(tags: Set(tag))
guard let request = currentRequest else { return }
request.endAccessingResources()
request.loadingPriority =
NSBundleResourceRequestLoadingPriorityUrgent
request.beginAccessingResources { (error: Error?) in
if let error = error {
onFailure(error as NSError)
return
}
onSuccess()
}
}
On-Demand リソースをダウンロードすると、メイン バンドルからアクセスできるようになります。
とにかくオーディオを持続させて、システムがオーディオをパージしないようにする方法はありますか?