Issue is with this line:
MPMediaItem *item = [[self.movieQuery items]objectAtIndex:[indexPath row]];
Change that to:
MPMediaItem *item = [movieArray objectAtIndex:[indexPath row]];
You didn't added anything to movieQuery
object, you created a local MPMediaQuery
object in viewDidLoad
and used that.
Another solution:
Change the viewDidLoad
like:
- (void)viewDidLoad
{
[super viewDidLoad];
MPMediaPropertyPredicate *predicate = [MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithInteger:MPMediaTypeAnyVideo] forProperty:MPMediaItemPropertyMediaType];
self.movieQuery = [[MPMediaQuery alloc] init];
[movieQuery addFilterPredicate:predicate];
NSLog(@"movieQuery got back %u results",[[self.movieQuery items]count]);
self.movieArray = [self.movieQuery items];
}