我目前正在开发一个应用程序,该应用程序UITableView
使用来自MPMediaItemCollection
. 我正在尝试在UITableViewCellAccessoryCheckmark
与当前播放曲目的标题匹配的行中添加一个。
我通过创建一个可变的曲目标题数组来实现这一点,这些标题也是为我的单元格的textLabel.text
属性设置的。(用于比较目的)
注意:这一切都在- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath
MPMediaItem *mediaItem = (MPMediaItem *)[collectionMutableCopy objectAtIndex: row];
if (mediaItem) {
cell.textLabel.text = [mediaItem valueForProperty:MPMediaItemPropertyTitle];
}
[mutArray insertObject:cell.textLabel.text atIndex:indexPath.row];
据我所知,这一切都很好,除了以下内容。此时,我正在尝试获取当前播放曲目标题的索引并将其添加UITableViewCellAccessoryCheckmark
到该行。
if (indexPath.row == [mutArray indexOfObjectIdenticalTo:[mainViewController.musicPlayer.nowPlayingItem valueForProperty:MPMediaItemPropertyTitle]]) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
谈到我的问题,我添加了所有上述(大部分是不相关的)代码,因为我不知道哪里出错了。当我登录indexOfObjectIdenticalTo:
时,它每次都会吐出“2147483647”,即使数组中的对象永远不会超过 5 个。但为什么?
如果有人有任何提示或指示可以帮助我解决此问题,将不胜感激!