0

我有一段代码尝试迭代地将项目添加到 AVQueuePlayer 中,如下所示:

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

_itemsForPlayer是一个NSMutableArray包含 AVPlayerItems。

每当我在执行时到达这条线时,我都会得到一个

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

错误。我知道负责的线路是

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

因为注释掉该行会消除错误。我曾认为问题在于[_itemsForPlayer objectAtIndex:i]没有返回 AVPlayerItem,但是添加一个打印语句来打印[_itemsForPlayer objectAtIndex:i]给了我:

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

所以代码应该能够将它添加到 AVQueuePlayer 就好了。有没有人有任何想法?

编辑:非常感谢@borrrden,他在评论中回答了这个问题——我已经覆盖了类中其他地方的 insertItem:afterItem,错误来自被覆盖方法中的问题。谈谈你的愚蠢错误 - 再次感谢 Borrrden!

4

0 回答 0