ios - 为什么从 MPMediaPicker (iOS) 返回 (null)

标签 ios objective-c

我正在编程让iPhone音乐库显示,用户选择一首歌曲,然后这首歌的标题反射(reflect)在UILabel中。要是这么简单就好了!我尝试将 MPMediaItem 放入 NSString,然后将 UILabel 反射(reflect)这一点,但我只是返回 (null)!

- (IBAction)showMediaPicker:(id)sender {
    MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAny];

    mediaPicker.delegate = self;
    //mediaPicker.allowsPickingMultipleItems = YES;
    mediaPicker.prompt = @"Select Your Favourite Song!";

    [self presentModalViewController:mediaPicker animated:YES];
}

- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItem *) mediaItemCollection {

    NSString *titleString = [mediaItemCollection valueForProperty:MPMediaItemPropertyTitle];
    titleLabel.text = [NSString stringWithFormat:@"Title: %@",titleString];


    [self dismissModalViewControllerAnimated: YES];
}

提前致谢

最佳答案

您正在尝试获取 mediaItemCollection 的标题。您需要像这样获取单独的歌曲标题:

MPMediaItem *selectedSong = [mediaItemCollection items] objectAtIndex:0];
NSString *titleString = [selectedSong valueForProperty:MPMediaItemPropertyTitle];

另外,您的 MPMediaPickerControllerDelegate 委托(delegate)设置错误:

应该是:

- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection

-您将 MPMediaItemCollection 作为 MPMediaItem

关于ios - 为什么从 MPMediaPicker (iOS) 返回 (null),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14447099/

相关文章:

ios - NSPlaceholderString 内存泄漏与 ARC

iOS - 尝试实现动画时钟 : Unable to simultaneously satisfy constraints runtime error -noob level 99

ios - 接入点 :Error Domain = NSCocoaErrorDomain Code=3840

iOS 10 错误? NSDate 小时描述与日本地区和 24 小时休假

objective-c - 为什么我无法从自定义 UIView 类中拖动导出?

objective-c - 子类 UITableViewController,我在 UIViewController 中的哪里设置它?

ios - 如何使用 NSRange 创建 NSArray 的子数组?

ios - 将它添加到数组(dict)时如何自动将 nil 转换为 [NSNull null]?

具有默认参数的Objective-C函数?

ios - 下载完成时通过 NSURLSession/NSURLSessionDownloadTask 发送本地通知