Код: Выделить всё
private func loadMusicLibrary() {
let authorizationStatus = MPMediaLibrary.authorizationStatus()
switch authorizationStatus {
case .notDetermined:
print("® Not determined")
requestPermissions()
case .authorized:
fetchMusicLibrary()
case .restricted, .denied:
withAnimation {
isLoading = false
isDeniedPermissions = true
}
@unknown default:
withAnimation {
isLoading = false
isDeniedPermissions = true
}
}
}
private func requestPermissions() {
MPMediaLibrary.requestAuthorization { status in
if status == .authorized {
fetchMusicLibrary()
} else {
withAnimation {
isLoading = false
isDeniedPermissions = true
}
}
}
}
< /code>
В первом запуске после установки приложения код работает, как и ожидалось, и попросите пользователя разрешения. Появится запрос на разрешение системы, но как только пользователь выберет одну опцию, приложение снимается. Код закрытия внутри mpmedialibrary.requestauthorization Но если вы снова запустите приложение, музыка указано, чтобы разрешение было правильно зарегистрировано.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... ermissions