MPMediaItemCollection Удалить выбранную очередь/коллекцию?

Сейчас я просматриваю пример AddMusic от Apple и играю с ним, прежде чем я начну переписывать его в свое приложение.

Я заметил, что он составляет собственный небольшой плейлист из поставленных песен. Я хочу использовать действие смахивания в представлении таблицы, чтобы удалить песни, которые пользователь щелкнул по ошибке.

Я реализовал действие смахивания, но не могу найти способ удалить эту конкретную строку?

Любая идея будет отличной, ниже приведен код для ее добавления. Я попытался сделать обратное, но безуспешно. Если это невозможно, как я должен это сделать?

Ваше здоровье

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

person Dan    schedule 24.05.2011    source источник


Ответы (1)


Коллекция MPMediaItemCollection является неизменной, т.е. вы не можете изменить элементы. Вам нужно создать новый со всеми элементами, кроме того, который вы хотите удалить. Увидеть ниже:

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

Будьте осторожны, чтобы не создать пустую коллекцию. Это не разрешено, и коллекция MPMediaItemCollection вызовет исключение.

person hktegner    schedule 18.11.2011