iPod ライブラリを使用していくつかの曲を再生する iPhone アプリケーションを開発しています。以下のコードで曲をロードします。問題は、デバイスが iTunes と同期された直後にこのコードを実行すると、問題が発生することです。どうやら iPod ライブラリを更新する必要があり、しばらく時間がかかります。同期の直後に iPod アプリケーションにアクセスすると、「ライブラリを更新しています..」というメッセージが表示されました。それが起こっている間にアプリケーションから「[query items]」を呼び出すと、ライブラリに曲がないことを示す空の配列が返されます。更新が終了すると、すべてが完璧に機能します。この問題を解決する方法はありますか? おそらく、更新がいつ終了したかを検出する方法です。すべての NSNotifications をリッスンしようとしましたが、更新が終了したときに何も呼び出されませんでした。
MPMediaQuery *query = [MPMediaQuery songsQuery];
// convert all items to abstracted media item
NSArray *items = [query items];
NSMutableArray *convertedItems = [[NSMutableArray alloc] initWithCapacity:[items count]];
for (MPMediaItem *item in items) {
REMediaItem *mediaItem = [[REMediaItem alloc] initWithMediaItem:item];
[convertedItems addObject:mediaItem];
[mediaItem release];
}
誰かが助けてくれることを願っています。
ピーター