起動後、最初の画面にメディアライブラリの曲をリストして表示したいとします。
初めて起動すると、メディアライブラリにアクセスするためのポップアップが表示されます。メディアライブラリの曲はロードされていません。初期起動時にメディアライブラリを読み込めません
アプリケーションを終了してもう一度開くと、問題なくメディアライブラリの曲を表示できます。
最初の起動時にどのようにロードするのですか?
AppDelegate;許可がまだメディアライブラリにアクセスすることを許可されていない場合
let realm:Realm
var library:[MPMediaItem]
override init() {
realm = try! Realm()
let query = MPMediaQuery.songs()
guard let items = query.items else {
self.library = []
print("No song loaded")
return
}
self.library = items
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let userSongs = realm.objects(UserSong.self)
if userSongs.count == 0 {
setLibrary()
}
}
func setLibrary() {
let request = GetLibraryRequest(library: library)
let songs = try! request.response()
for song in songs {
try! self.realm.write {
self.realm.add(song)
}
}
}
レルムに追加した後にもう一度クエリを実行する – Tj3n