Я хочу отображать UITableView только с песнями, которые в данный момент находятся на устройстве.
Если я запрашиваю все элементы, я (очевидно) получаю все элементы, включая тот, который я купил, но не загрузил. Вот (часть) кода
@property (strong, nonatomic) NSMutableArray *songsList;
- (void)viewDidLoad
{
[super viewDidLoad];
self.tableView.delegate = self;
self.tableView.dataSource = self;
MPMediaQuery *everything = [[MPMediaQuery alloc] init];
NSArray *itemsFromGenericQuery = [everything items];
self.songsList = [NSMutableArray arrayWithArray:itemsFromGenericQuery];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.songsList.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"TableCellID";
TableCellTitle *tablecell = (TableCellTitle *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
MPMediaItem *song = [self.songsList objectAtIndex:indexPath.row];
NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle];
tablecell.cellSongname.text = songTitle;
return tablecell;
}
Я читал пару вещей о вовлечении
[song valueForProperty:MPMediaItemPropertyIsCloudItem]
но не могу заставить его работать, как я объяснил выше. Какие-либо предложения?
MPMediaItemPropertyIsCloudItem
. Это свойство будет захватывать только те песни, которые вы вручную загрузили из облака, тогда как приложение «Музыка» может определить, какие песни были загружены в кеш, независимо от того, были ли они загружены вручную или пользователь только что прослушал их один раз. . Я тоже хочу найти решение этой проблемы. - person sooper   schedule 18.10.2013