私は現在、UITableView
からのアイテムを に取り込むアプリに取り組んでいMPMediaItemCollection
ます。UITableViewCellAccessoryCheckmark
現在再生中のトラックのタイトルに一致する行に a を追加しようとしています。
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;
}
私の質問にたどり着くと、どこで間違ったのか困惑しているため、上記の(ほとんど無関係な)コードをすべて追加しました。配列に5つ以上のオブジェクトがないにもかかわらず、ログに記録indexOfObjectIdenticalTo:
すると毎回「2147483647」が吐き出されます。しかし、なぜ?
これを修正するのに役立つヒントや指針があれば、大歓迎です!