1

私は現在、AppleのAddMusicの例を見て、アプリケーションに書き直す前にそれをいじっています。

私はそれが曲の独自の小さなプレイリストをキューに入れていることに気づきました。テーブルビューでスワイプアクションを使用して、使用者が誤ってクリックした曲を削除したいと思います。

スワイプアクションを実装しましたが、その特定の行を削除する方法がわかりませんか?

どんなアイデアでも素晴らしいでしょう、以下はそれを追加するためのコードです。運が悪かったので逆にやってみました。それが不可能な場合、どうすればよいですか?

乾杯

MainViewController *mainViewController = (MainViewController *) self.delegate;
MPMediaItemCollection *currentQueue = mainViewController.userMediaItemCollection;
MPMediaItem *anItem = (MPMediaItem *)[currentQueue.items objectAtIndex: row];
4

1 に答える 1

4

MPMediaItemCollection は不変です。アイテムを変更することはできません。削除するアイテムを除いたすべてのアイテムで新しいアイテムを作成する必要があります。下記参照:

NSArray* items = [currentQueue items];
NSMutableArray* array = [NSMutableArray arrayWithCapacity:[items count]];
[array addObjectsFromArray:items];
[array removeObjectAtIndex:row];
MPMediaItemCollection* newCollection = [MPMediaItemCollection collectionWithItems:array];

空のコレクションを作成しないように注意してください。これは許可されておらず、MPMediaItemCollection で例外が発生します。

于 2011-11-18T10:59:13.827 に答える