我想要显示一个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]但不能像我上面解释的那样起作用。有什么建议吗?
发布于 2013-10-21 10:09:33
我自己解决了这个问题,我在viewDidLoad方法中在MPMediaQuery之间添加了下面一行.还有NSArray..。
[everything addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithBool:NO] forProperty:MPMediaItemPropertyIsCloudItem]];发布于 2013-10-18 13:35:21
在MPMediaQuery方法中像这样初始化ViewDidLoad。
MPMediaQuery * everything = [MPMediaQuery songsQuery];
self.songsList = [everything items];
[self.tableView reloadData];细胞指数法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"TableCellID";
TableCellTitle *tablecell = (TableCellTitle *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
MPMediaItem *anItem = (MPMediaItem *)[self.songsList objectAtIndex: indexPath.row];
if([anItem valueForProperty:MPMediaItemPropertyTitle]) {
tablecell.cellSongname.text = [anItem valueForProperty:MPMediaItemPropertyTitle];
}
return tablecell;
}https://stackoverflow.com/questions/19450392
复制相似问题