尝试将AVPlayerItem添加到AVQueuePlayer时,“NSInvalidArgumentException [__NSArrayM insertObject:atIndex:]:object不能为nil”错误

时间:2013-02-21 05:04:39

标签: ios objective-c

我有一段代码,我正在尝试迭代地向AVQueuePlayer添加项目,如下所示:

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

_itemsForPlayer是包含AVPlayerItems的NSMutableArray

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

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

错误。我知道负责的一行是

[self insertItem:[_ itemsForPlayer objectAtIndex:i] afterItem:nil];

因为注释掉该行会删除错误。我假设问题是[_itemsForPlayer objectAtIndex:i]没有返回AVPlayerItem,但是添加print语句来打印[_itemsForPlayer objectAtIndex:i]给了我:

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

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

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

0 个答案:

没有答案