0

次のように、アイテムを AVQueuePlayer に繰り返し追加しようとしているコードがあります。

for (int i = tempNowPlayingIndex - 1; i < [_itemsForPlayer count]; i++) {
        [self insertItem:[_itemsForPlayer objectAtIndex:i] afterItem:nil];
    }

_itemsForPlayer含まれているNSMutableArrayAVPlayerItems です。

ただし、実行時にこの行に到達するたびに、

'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil' 

エラー。担当の行が

[self insertItem:[_itemsForPlayer objectAtIndex:i] afterItem:nil];

その行をコメントアウトするとエラーが削除されるためです。問題は[_itemsForPlayer objectAtIndex:i]AVPlayerItem を返さないことだと思っていましたが、print ステートメントを print に追加すると、次のようになり[_itemsForPlayer objectAtIndex:i]ます。

<AVPlayerItem: 0x2002be60, asset = <AVURLAsset: 0x2003c0e0, URL = ipod-library://item/item.mp3?id=8966039988459606203>>

したがって、コードはそれを AVQueuePlayer に問題なく追加できるはずです。誰にもアイデアはありますか?

編集:コメントで質問に答えてくれた@borrrdenに感謝します-クラスの他の場所でinsertItem:afterItemをオーバーライドしましたが、オーバーライドされたメソッドの問題からエラーが発生しました。あなたのばかげた過ちについて話してください - ありがとう、Borrrden!

4

0 に答える 0