无法识别的选择器发送到实例(iOS) - 自动WaitsToMinimiseStalling

Posted

技术标签:

【中文标题】无法识别的选择器发送到实例(iOS) - 自动WaitsToMinimiseStalling【英文标题】:Unrecognised selector sent to instance (iOS) - automaticallyWaitsToMinimiseStalling 【发布时间】:2017-07-12 17:51:16 【问题描述】:

对目标 c 来说非常新鲜,我完全被下面的错误难住了。任何帮助或指导将不胜感激!

异常 '-[ReactPlayer setAutomaticallyWaitsToMinimizeStalling:]: unrecognized selector sent to instance 0x14e352500' 在使用参数调用目标 AudioPlayer 上的准备时抛出...

上下文:AVPlayer 的状态是不可靠的,所以播放器正在为实际的音频加载做准备。 player.automaticallyWaitsToMinimizeStalling 属性告诉 AVPlayer 立即播放,而不是等到它可以播放整个文件,所以我将其设置为 false 以尝试解决此问题。在模拟器上工作得很好,但是在 ios 设备上构建时我遇到了上面的错误。

涉及到如下代码:

 if (player.currentItem.status == AVPlayerStatusReadyToPlay) 
        player.automaticallyWaitsToMinimizeStalling = NO;
        callback(@[[NSNull null]]);
     else 
        NSDictionary* dict = [Helpers errObjWithCode:@"preparefail"
                                         withMessage:[NSString stringWithFormat:@"Preparing player failed"]];

        if (player.autoDestroy) 
            [self destroyPlayerWithId:playerId];
           

        callback(@[dict]);
    

【问题讨论】:

您的设备运行的是哪个 iOS 版本?该属性是在 iOS 10 中添加的。 是的,这就是问题所在,我在 iOS 9.3 上运行它。谢谢! 【参考方案1】:

“无法识别的选择器”表示您正在调用不支持该方法的对象上的方法,在本例中为setAutomaticallyWaitsToMinimizeStalling。你的player 对象是ReactPlayer 而不是AVPlayer,我猜ReactPlayer 没有实现setAutomaticallyWaitsToMinimizeStalling 方法

【讨论】:

感谢您的回答彼得。事实证明,在 iOS 10 中添加了属性“AutomaticallyWaitsToMinimizeStalling”,而我运行的是 iOS 9.3,这导致了崩溃。

以上是关于无法识别的选择器发送到实例(iOS) - 自动WaitsToMinimiseStalling的主要内容,如果未能解决你的问题,请参考以下文章

iOS Cocoa NSArrayI 长度]:发送到实例的无法识别的选择器

适用于 iOS 的 FBSDK:“发送到实例的无法识别的选择器”

IOS 7无法识别的选择器发送到带有按钮的实例问题

ios [__NSCFNumber 长度]:发送到实例的无法识别的选择器

UIButton 的 IBAction 导致无法识别的选择器发送到实例错误 (iOS)

iOS - 名称标签时出现“无法识别的选择器发送到实例”错误