起動後の初期画面にメディアライブラリーの曲を一覧表示したい。
初回起動時、メディアライブラリへのアクセス許可のポップアップが表示されます。また、メディア ライブラリーの曲は読み込まれません。
アプリケーションを終了して再度開くと、問題なくメディア ライブラリの曲を表示できます。
初回起動時にロードするにはどうすればよいですか?
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)
}
}
}