【发布时间】:2013-10-27 08:10:07
【问题描述】:
我想显示一个仅包含设备上当前歌曲的 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]
但不能像我上面解释的那样让它工作。 有什么建议吗?
【问题讨论】:
-
我也遇到过类似的问题。当您的互联网中断时,Apple 的音乐应用程序会过滤掉所有不在设备上的歌曲,我认为这与
MPMediaItemPropertyIsCloudItem没有任何关系。此属性只会抓取您从云端手动下载的歌曲,而音乐应用程序能够检测哪些歌曲已下载到缓存中,无论是手动下载还是用户只听过一次.我也想找到解决办法。 -
或者您只是想找回从云端下载的歌曲?
-
听起来我们在寻找同样的东西...... ;)
标签: ios objective-c uitableview mpmediaquery