我对Xcode相对比较陌生,并且正在尝试编写一个应用程序,该应用程序将从教程中播放iTunes中的视频,但我的应用程序不断崩溃。NSInvalidArgumentException:对象不能为零
这是给我的错误代码:
'NSInvalidArgumentException' 的,理由是: '* - [__ NSArrayM insertObject:atIndex:]:对象不能是零'
我用断点,并找到问题的地方,但我不知道如何解决它。这条线给我的问题是:
[list addObject:[item valueForProperty:MPMediaItemPropertyAssetURL]];
有没有人有任何想法?下面是.m文件代码:
@implementation iPodLibrary
+(NSArray *) movieList {
NSMutableArray *list =
[[[NSMutableArray allocWithZone:NULL] init] autorelease];
MPMediaQuery *query = [[MPMediaQuery alloc] init];
[query addFilterPredicate:[MPMediaPropertyPredicate
predicateWithValue:[NSNumber numberWithInteger:(MPMediaTypeAny^MPMediaTypeAnyAudio)]
forProperty:MPMediaItemPropertyMediaType]];
for (MPMediaItem* item in [query items]) {
[list addObject:[item valueForProperty:MPMediaItemPropertyAssetURL]];
}
[query release];
return list;
}
+ (NSString *) movieTitle:(NSURL *)aURL {
NSString *aTitle = nil;
if (aURL) {
AVAsset* aAsset = [[AVURLAsset allocWithZone:NULL]
initWithURL:aURL options:nil];
for (AVMetadataItem* metadata in [aAsset commonMetadata]) {
if ([[metadata commonKey] isEqualToString:AVMetadataCommonKeyTitle]) {
aTitle = [metadata stringValue];
break;
}
}
}
return aTitle;
}
@end
谢谢!我把它放进去,它显示列表返回0.我仍然不确定如何修复它。该代码与我基于它的示例项目相匹配,但即使这样也不会在我的内容中出现。这是iPodLibrary.h&.m中的某些内容不起作用的原因,因为它应该进入iTunes资料库,但没有进入iTunes资料库。你有任何其他想法如何解决它?再次感谢你,我感谢你的帮助。 – Kilij522
您是否已验证iTunes资料库中是否有东西可以返回? –
是的。它应该是从iTunes提起电影,我正在iPad上运行/测试它,并且我确保将电影放在它上面,以便它能够返回。 – Kilij522