• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - UIImagePickerController 偶尔会死机

[复制链接]
菜鸟教程小白 发表于 2022-12-12 16:00:54 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在 Unity 应用程序中使用 UIImagePickerController。当用户按下“完成”时,它偶尔会卡住。它最常发生在 3GS 上——大约每三次——但我也偶尔在 iPhone 5 上死机。这个错误出现在 iOS 4.3 到 7.0 中。我无法确定与卡住相关的因素。当我得到这个卡住时,我也没有收到内存警告。

日志中没有错误,也没有任何崩溃日志。该应用程序继续像往常一样在 UIImagePickerController 后面运行。控制台中有很多看似相关的消息,例如“拒绝文件写入数据/private/var/mobile/Media/PhotoData”,但它们偶尔会在出现卡住和一切正常时出现好的。

这是我显示选择器的方式:

- (void)showPickerUIImagePickerControllerSourceType)type
{
    imgPicker = [[[CustomPhotoPicker alloc] init] autorelease];
    imgPicker.delegate = self;
    imgPicker.sourceType = type;
    imgPicker.allowsEditing = _pickerAllowsEditing;

    // wrap and show the modal
    [self showViewControllerModallyInWrapper:imgPicker];

}

这里是委托(delegate)方法:

- (void)imagePickerControllerUIImagePickerController*)imgPicker didFinishPickingMediaWithInfoNSDictionary*)info
{
    NSLog( @"imagePickerController didFinishPickingMediaWithInfo");

    // If the freeze is present, this method isn't called
}

- (void)imagePickerControllerUIImagePickerController *)imgPicker
        didFinishPickingImageUIImage *)image
                  editingInfoNSDictionary *)editingInfo
{
    NSLog( @"imagePickerController didFinishPickingImage");

    // Tried to use deprecated callback. If the freeze is present, this method isn't called either.
}

我会认为这是 UIImagePickerController 中的一个错误,但没有使用 Unity 的 iOS 开发人员遇到过这个问题,我想如果这样的错误已经修复,如果它出现在 4.3 中。



Best Answer-推荐答案


有一个解决方法:你可以在 UnityAppController.mm 中将 CFRunLoopRunInMode 静音,如下所示:

- (void)repaintDisplayLink
{
    [_displayLink setPaused: YES];
    {
        static const CFStringRef kTrackingRunLoopMode = CFStringRef(UITrackingRunLoopMode);
        if (![EtceteraManager picking])
        {
            while (CFRunLoopRunInMode(kTrackingRunLoopMode, kInputProcessingTime, TRUE) == kCFRunLoopRunHandledSource)
                ;
        }
    }
}

关于ios - UIImagePickerController 偶尔会死机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19591701/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap