我对 Xcode 比较陌生,正在尝试编写一个应用程序来播放教程中的 iTunes 视频,但我的应用程序不断崩溃。
它给了我错误代码:
'NSInvalidArgumentException',原因:' * -[__NSArrayM insertObject:atIndex:]:对象不能为 nil'
我使用了断点并找到了问题所在,但我不确定如何解决它。给我带来问题的行是:
[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