gpt4 book ai didi

ios - 上拉媒体选择器 xCode/Objective-C

转载 作者:行者123 更新时间:2023-11-29 02:41:00 25 4
gpt4 key购买 nike

Objective-C 的新手,但我正在尝试在 xCode 中向我的应用程序添加一个音乐选择器,您可以在其中单击它并打开用户音乐库供他们选择歌曲,但我不能找出如何做到这一点,我看到的所有文档似乎都不起作用。例如,

MPMediaPickerController *picker =
[[MPMediaPickerController alloc]
initWithMediaTypes: MPMediaTypeAnyAudio]; // 1

[picker setDelegate: self]; // 2
[picker setAllowsPickingMultipleItems: YES]; // 3
picker.prompt =
NSLocalizedString (@"Add songs to play",
"Prompt in media item picker");

[myController presentModalViewController: picker animated: YES]; // 4
[picker release];

直接来自 Apple 的帮助文档。当我将其输入我的应用程序时,出现错误:

mediaPicker.delegate = self;   // Error: Assigning to 'id<MPMediaPickerControllerDelegate?' from incompatible type "ViewController *const__stron"

[self presentModalViewController:mediaPicker animated:YES]; // Error: 'presentModalViewController:animated:' is deprecated: first deprecated in iOS 6.0

我觉得我需要对 mediaPicker.delegate = self; 行做点什么,但不知道是什么。有帮助吗?

最佳答案

改变这一行:

mediaPicker.delegate = self;   // Error: Assigning to 'id<MPMediaPickerControllerDelegate?' from incompatible type "ViewController *const__stron"

mediaPicker.delegate = id<MPMediaPickerControllerDelegate>self;

或者您可以转到自身类的头文件,并按照 MPMediaPickerControllerDelegate 的方式编写 -

@interface CLassName : UIViewController <MPMediaPickerControllerDelegate> {
//code
}

至于你的第二个问题使用这个方法:

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0)

您正在使用的方法已被弃用,因此最好使用这个新方法。像这样使用它:

[self presentViewController:mediaPicker animated:YES completion:nil];

如果需要,您可以将动画更改为NO,至于完成 block 。如果你需要在动画完成后执行一些操作,你可以在这个 block 中编写你的代码。

希望这对您有所帮助。干杯。

*****编辑*****
假设您的类名是 TestMediaPickerController。然后转到 TestMediaPickerController.h 文件,然后在声明接口(interface)的头文件中执行以下操作:首先将其添加到标题中。

#import <MediaPlayer/MediaPlayer.h>

然后

 @interface TestMediaPickerController : UIViewController <MPMediaPickerControllerDelegate> {  //Adding this `<MPMediaPickerControllerDelegate>` here makes your TestMediaPickerController Class confirm to the Protocol MPMediaPickerControllerDelegate.
//code
}

您遇到的问题似乎是您在设置 MPMediaPickerControllerDelegate 时遇到了问题。

关于ios - 上拉媒体选择器 xCode/Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25799554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com