在 iOS 7 中使用相机时,应用程序因内存压力而终止

2023-11-23

我面临错误应用程序因内存压力而终止当我使用 UIImagePickerController Camera 捕获一些图像时。

我首先收到内存警告,然后应用程序突然崩溃。这个问题在 iOS 7 中特别明显,在 iOS 6 中它工作得很好。

有人知道为什么 iOS 7 使用相机时会出现这个内存问题吗?

Note:我尝试尽量减少 RAM 使用量,因为这也可能是内存压力的原因。但仍然收到警告。


我刚刚在类似的帖子上发布了这个答案(iOS 7 UIImagePicker预览黑屏)。我是这样说的:

大约 5 个月前,我的团队发现 UIImagePickerController 存在内存泄漏。每个实例化都会以指数方式减慢应用程序的速度(即第一个 alloc-init 有 1 秒的延迟,第二个有 2 秒的延迟,第三个有 5 秒的延迟)。最终,我们出现了 30-60 次延误(与您遇到的情况类似)。

我们通过子类化 UIImagePickerController 并将其设为 Singleton 解决了该问题。这样它只被初始化一次。现在我们的延迟已经降到最低并且避免了泄漏。如果子类化不是一个选项,请尝试在 viewController 中使用类属性,然后像这样延迟加载它。

-(UIImagePickerController *)imagePicker{
    if(!_imagePicker){
        _imagePicker = [[UIImagePickerController alloc]init];
        _imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
}
    return _imagePicker;
}

然后你可以稍后调用它,例如:

[self presentViewController:self.imagePicker animated:YES completion:nil];

据我所知,这只是 iOS 7 中 UIImagePickerController 的问题。以前的版本似乎没问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 iOS 7 中使用相机时,应用程序因内存压力而终止 的相关文章

  • UIView 子类不会自动调整大小

    我一直在寻找有关调整大小的背景信息 但找不到太多 我知道我需要设置autoresizesSubviews在超级视图和autoresizingMask在子视图上 我已经这样做了 并且我的 UIImageViews 正确调整了大小 但我的自定义
  • iOS 8 中的 UISplitViewController 状态恢复

    在 iOS 8 上 UISplitViewController 似乎可以保存和恢复其子视图的状态 例如 主视图是否隐藏 这是不可取的 因为我的应用程序应该始终以横向方式显示主视图 并始终以纵向方式隐藏它 如果用户以横向模式关闭应用程序 保存
  • 如何请求用户开启定位服务

    我需要我的应用程序来访问用户的当前位置 它在应用程序开始时检查用户是否已设置 如果没有 我需要应用程序显示提示以使其使用位置服务 就像警报视图一样 点击按钮 它应该会带您进入 iPhone 上的位置服务屏幕 您可以通过以下代码检查 loca
  • 在后台任务中安排通知

    我正在为 iOS 开发一个日历 闹钟应用程序 它与网络服务器同步 当在服务器上添加活动时 会发出推送通知 以便 iOS 客户端可以获取新数据 并根据需要更新和安排下一次警报的时间 本地通知 但这仅在应用程序在客户端打开时才有效 我希望客户端
  • 沿着预定路径移动图像?

    是否可以通过按下 iphone SDK 中的按钮来将图像设置为沿着预定路径运动 我不是在寻找任何奇特的东西 我正在研究一个简单的概念 但这会节省大量动画工作 是的 您可以通过创建一个路径来为任何 CALayer 制作动画CAKeyframe
  • 在 Swift 中自动移动 UISlider

    我想在按下按钮时将 UISlider 从 minValue 循环移动到 maxValue 并在再次按下按钮时将其停止在当前位置 我想使用 Swift 我遇到的主要问题是函数 slider setValue 太快了 我希望动画更慢 IBAct
  • 如何使用 Swift 获取 YouTube 频道的所有播放列表?

    我的问题不是关于从一般频道检索视频 我只想获取该频道创建的所有 播放列表 并检索每个播放列表的缩略图 标题和视频数量 这是一个 YouTube 频道示例 正如您所看到的 有很多已创建的播放列表 截至目前 我只能获取某个频道最新上传的视频 在
  • Objective C 如何将文本字段添加到导航栏中

    我正在尝试将文本字段添加到导航栏中 但它没有显示在模拟器中 我在 viewdidload 中按如下方式执行 UITextView textField UITextView alloc initWithFrame CGRectMake 0 0
  • iPhone 快照,包括键盘

    我正在寻找拍摄整个 iPhone 屏幕 包括键盘 的正确方法 我找到了一些截取屏幕的代码 CGRect screenCaptureRect UIScreen mainScreen bounds UIView viewWhereYouWant
  • Objective C UIImagePNGRepresentation内存问题(使用ARC)

    我有一个基于 ARC 的应用程序 它从 Web 服务加载大约 2 000 个相当大 1 4MB 的 Base64 编码图像 它将 Base64 解码后的字符串转换为 png图像文件并将其保存到磁盘 这一切都是在一个循环中完成的 我不应该有任
  • 我可以知道 requireGestureRecognizerToFail 到底会做什么吗?

    谁能告诉我下面的代码行到底会做什么 我已经提到过Apples https developer apple com library ios documentation uikit reference UIGestureRecognizer C
  • 如何将音乐从我的应用程序切换到 iPod

    我在用MusicPlayerController我的应用程序中的对象来播放音乐 我知道当 iPhone ipod 应用程序终止时 可以继续播放我的应用程序音乐 我该怎么做 这涉及到一些事情 您必须在两种音乐播放器之间进行选择 应用程序音乐播
  • Xcode 9 中的“addingPercentEncoding”是否损坏?

    在 Swift 3 x 和 Xcode 9 beta 2 中 使用addingPercentEncoding https developer apple com documentation swift string 1690785 addi
  • 我应该在哪个方法中设置 UITextField 的委托?

    在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一个好习惯吗 我尝试在 init 方法中将委托设置为 self 但它没有调用相应的委托方法 当我将代码移动到 viewDidLoad 中时 它注册为将 s
  • NSPredicate 的 onFormat 字符串

    我想用 id 键对数据进行排序 我如何理解格式字符串的用途NSPredicate格式 我有一个100号的帖子 我的代码 let objectIDs posts map 0 id let predicate NSPredicate forma
  • 在 iOS 上从 GPS 获取时间

    我正在开发一个跟踪器应用程序 该应用程序需要高精度地了解设备位置 即它使用位置服务并忽略水平精度低于 20 米的位置 CLLocation没有明确声明是否通过 GPS 确定 但是 如果水平精度为 20 米或更好 则可以认为它是来自 GPS
  • 退出导航控制器

    我试图离开初始视图控制器 并进入空白视图控制器 这很好 但是这会使空白视图控制器也成为导航控制器的一部分 这不是我想要的 我想脱离视图控制器 在视图控制器中 我尝试退出 它会自行弹出 当我尝试视图中的方法时 将出现目标视图控制器 self
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector
  • ActionScript、NetStream.Play.Failed iOS AIR 移动设备

    我正在尝试以类似于 Tiberiu Ionu Stan http stackoverflow com questions 2036107 aac mp4 not working in actionscript 3s netstream 的方
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we

随机推荐

  • NuGet 无法加载源的服务索引身份验证失败

    从今天开始 由于某种原因 我无法通过 Visual Studio 连接到 NuGet 包管理器 nuget org Unable to load the service index for source https api nuget or
  • 识别并解决 javax.el.PropertyNotFoundException: Target Unreachable

    当尝试像这样在 EL 中引用托管 bean 时 bean entity property 有时一个javax el PropertyNotFoundException Target Unreachable通常在要设置 bean 属性或要调用
  • Android 浏览器中某些按键没有按键事件

    下面的代码在 Chrome Firefox iPhone 甚至 Android 上的第三方浏览器中都能完美运行 但是 当在本机浏览器中运行时 瑞典语键盘上的特殊字符 如 和 的按键事件根本不会被触发 该示例应该只允许用户一次输入一个字符 工
  • Python、SQLite 和线程

    我正在开发一个应用程序 该应用程序将通过 HTTP 从多个位置收集数据 在本地缓存数据 然后通过 HTTP 提供数据 所以我正在看以下内容 我的应用程序将首先创建几个线程 这些线程将按指定的时间间隔收集数据并将该数据本地缓存到 SQLite
  • C# 中读取大端数据的有效方法

    我使用以下代码来读取 BigEndian 信息BinaryReader但我不确定这是否是有效的方法 还有更好的解决办法吗 这是我的代码 some code to initialize the stream value set the len
  • Excel COM add 在启动期间未加载,必须手动添加

    Excel COM 插件在启动期间未加载 每次我都必须手动添加它 检查后文件 gt 选项 gt 加载项 gt 管理 gt COM 加载项 我看到 加载项 处于 已卸载 状态 不知道如何让它在启动时自动加载 这就是为我解决问题的方法 Step
  • 保存枕头图像时如何正确设置 DPI?

    我正在尝试使用Python以编程方式创建图像枕头库但我遇到图像内文本的图像质量问题 我想将生成的图像保存为 PNG 因此我在保存时设置 DPIthis 但我是否保存dpi 72 72 or dpi 600 600 它在视觉上看起来是一样的
  • asp.net c# SqlDataSource超时问题

    我试图将 SqlDataSource 的超时时间延长到 30 秒以上 似乎是默认值 我正在尝试运行一个必须运行 100 000 条记录的存储过程 在繁忙期间它会超时 我在 2003 服务器上使用 ASP NET 4 0 和 IIS 6 0
  • C++ Vector at/[] 运算符速度

    为了给函数提供修改向量的选项 我不能这样做 curr myvec at i doThis curr doThat curr doStuffWith curr 但我必须这样做 doThis myvec at i doThat myvec at
  • 如何重置nodejs流?

    如何重置nodejs流 如何在nodejs中再次读取流 提前致谢 var fs require fs var lineReader require line reader proxy txt only 3 lines var readStr
  • 为什么非正规浮点值处理起来较慢?

    通常情况下 消耗或产生非正规值的浮点值比其他情况慢 有时慢得多 为什么会这样呢 如果是因为它们被软件捕获而不是直接在硬件中处理 据说在某些 CPU 上就是如此 那么为什么它们必须这样做呢 对于 IEEE 754 浮点 遇到的大多数操作数都是
  • 使用 weave 作为网络在 kubernetes 内运行的 docker 容器内没有互联网连接

    我有一个在 AWS EC2 实例上运行的 kubernetes 集群 并编织为网络 cni 我已经禁用了 docker 网络 ipmask 和 iptables 因为它是由 weave 管理的 以避免网络冲突 我已经在这个集群上部署了 Je
  • TortoiseGit 克隆选项在右键单击上下文菜单中不可用

    我已在 Windows 7 64 位计算机上安装了 Git 2 5 2 64 位和 TortoiseGit 1 8 16 0 64 位 我想克隆存储库 但是当我在 Windows 资源管理器中右键单击时 我没有看到克隆存储库的选项 我已经转
  • php 中的 cURL 选项 - 什么选项是 -u [关闭]

    Closed 这个问题是无关 目前不接受答案 我的参考文献列出了一个选项 curl u ExactID Password 这是否意味着我只需使用 CURLOPT USERPWD 并使用 ExactID Password 格式 是的 CLI
  • 如何设置 django 和 mysql 使用 UTF-8

    我想将 Django mysql 站点设置为使用 UTF 8 请指导我必须在 django 和 mysql 中进行的更改 以确保以下事项 用户在表单中输入的数据将始终编码为 UTF 8 将数据以utf 8存储在mysql中 正确显示模板中的
  • 确定某个值是否在 TensorFlow 中的集合中

    The tf logical or tf logical and and tf select功能非常有用 但是 假设你有价值x 并且您想看看它是否在set a b c d e 在 python 中你只需写 if x in set a b c
  • 在没有root访问权限的情况下安装python包[重复]

    这个问题在这里已经有答案了 我想在我使用的服务器中安装python包networkx 在问这个问题之前我进行了搜索 它说使用 pip install user networkx 但它不起作用 linux错误是 Usage usr bin p
  • 在android中缩放和平移位图

    我正在尝试出售位图并在每一步进行翻译 如果我们看下面的代码 我正在绘制一个图像 对其进行平移和缩放 然后反向执行相同的操作 以便恢复原始配置 但在应用操作后 我确实得到了原始缩放图像 比例因子 1 但图像被平移到不同的位置 您能指出正确的方
  • 根据文本调整 UILabel 高度

    考虑我有以下文本UILabel 一长行动态文本 由于外星军队的数量远远超过团队 玩家必须利用后世界末日的世界来发挥自己的优势 例如在垃圾箱 柱子 汽车 瓦砾和其他物体后面寻找掩护 我想调整大小UILabel s高度 以便文本可以适合 我正在
  • 在 iOS 7 中使用相机时,应用程序因内存压力而终止

    我面临错误应用程序因内存压力而终止当我使用 UIImagePickerController Camera 捕获一些图像时 我首先收到内存警告 然后应用程序突然崩溃 这个问题在 iOS 7 中特别明显 在 iOS 6 中它工作得很好 有人知道