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
никогда не называется.
Но если вы снова запустите приложение, музыка указано, чтобы разрешение было правильно зарегистрировано.>
На моем основном модификаторе на моем основном представлении я называю эту функцию loadmusiclibrary: < /p> [code] 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 [/code] никогда не называется. Но если вы снова запустите приложение, музыка указано, чтобы разрешение было правильно зарегистрировано.>