iPad上iOS SDK 8.4中ARC下的过度升级MPMoviePlayerController

iPad上iOS SDK 8.4中ARC下的过度升级MPMoviePlayerController,ios,ipad,sdk,automatic-ref-counting,mpmovieplayercontroller,Ios,Ipad,Sdk,Automatic Ref Counting,Mpmovieplayercontroller,从较大项目的一部分创建了一个非常简单(单视图)的示例项目它与iOS SDK 8.3配合使用。 当你点击“显示我”按钮时,一个视频出现(作为模态),2秒后,它消失了。看起来不错。但几分钟后,应用程序崩溃,因为一个-dealloc消息被发送到一个已经解除分配的对象 [MPAVController释放]:发送到解除分配实例的消息 下面是我的示例项目(不要忘记Video.mp4): ViewController.h #import <UIKit/UIKit.h> @interface Vi

从较大项目的一部分创建了一个非常简单(单视图)的示例项目它与iOS SDK 8.3配合使用。

当你点击“显示我”按钮时,一个视频出现(作为模态),2秒后,它消失了。看起来不错。但几分钟后,应用程序崩溃,因为一个-dealloc消息被发送到一个已经解除分配的对象

[MPAVController释放]:发送到解除分配实例的消息

下面是我的示例项目(不要忘记Video.mp4):

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController


@end
#import <UIKit/UIKit.h>

@interface MediaViewController : UIViewController

@end
MediaViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController


@end
#import <UIKit/UIKit.h>

@interface MediaViewController : UIViewController

@end
在属性指定之后

还使用仪器检查:

这个问题一直发生在iPad上,但在iPhone上似乎不是问题

有人面对过这个问题吗

(可能是一个解决方案:下载iOS 8.3 SDK并使用它进行存档)

干杯


Adam

我的应用程序在ios8.3上运行良好,但在8.4上显示了这个过度发布的问题。在读了你的问题之前,我一直以为我弄坏了什么,我在ios8.3上尝试了这个应用。。也许我得到了一个解决方案,试试看(它已经对我起作用了——做了很多测试)

试试这个: 在您的
MediaViewController
add/override
ViewDidEvale
方法上,如下所示:

   func viewDidDisappear(animated: Bool) {
        super.viewDidDisappear(animated)

        //just a small fix for error on iPad iOS8.4
        self.movieController.stop()
    }

如果它不起作用,在
视图中添加它也会消失
-对我来说很有效。

已经测试了一些。我似乎在模拟器上遇到了问题,但不是运行8.4的iPad,我只能确认——但我确信我也在设备上尝试过——它不会在我的iPad mini(iOS 8.4)上崩溃。仍然不确定使用此SDK是否“安全发布”…引起了广泛关注:21701131@Jmf:请将您的雷达交叉张贴到,以便其他人可以更轻松地复制它。我还面临一个问题,似乎所有人都在使用PresentMoviePlayerViewController来显示全屏视频,但在8.4中,如果您将电影播放器添加为子视图,则效果良好。我也在经历同样的问题,并试图解决它。在我重新下载Xcode 6.3.2(使用iOS SDK 8.3)并从~/Downloads/运行之后,请参见我的帖子。。。我被撞坏了。在Xcode 6.4压缩后(源代码被删除),6.3.2移到了它的位置(/Applications/),它工作得很好。我在8.4中也看到了这个问题。甚至使用从xcode 6.3构建的归档。我在ios-9.0测试版中也看到了同样的问题。你打开了关于这个问题的雷达了吗?谢谢。知道为什么它被过度发布了吗?在发布viewcontroller时出现了一些问题…所以这是一个bug。。。。
   func viewDidDisappear(animated: Bool) {
        super.viewDidDisappear(animated)

        //just a small fix for error on iPad iOS8.4
        self.movieController.stop()
    }