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