如何释放 ARC 中的内存以进行高内存使用图形渲染?

2024-01-29

首先,感谢这个网站上的每个人...它对于深入了解 iOS 编程非常有帮助。

我当前的问题:

我有一个应用程序可以渲染非常风格化的照片版本。它使用一些 CoreImage 过滤器来处理其中的一些内容,但需要一堆 CoreGraphics 来完成繁重的图像处理。

代理大小渲染效果很好,但是当我渲染图像的全分辨率版本时,它有时会因为内存使用率过高而崩溃。问题是渲染时我需要能够在内存中拥有多个全分辨率(3264x2448)缓冲区。我不知道什么或如何释放更多内存。我一直非常小心地尽可能地匹配 CGImageRelease。

对于 ARC,我如何知道某些内容是否真的已发布并释放?将对象设置为 nil 并不会真正执行任何操作。

我怀疑我是否可以以任何方式将其流式传输到磁盘。

任何建议将不胜感激!

THANKS!


ARC 在这种情况下并没有什么区别。

这只是意味着你不必打电话release靠你自己。

对于非 ARC,在内存不足的情况下,您可能想要释放一些您并不真正需要的属性(这意味着它们可以根据需要重新创建)。

- ( void )didReceiveMemoryWarning:
{
    [ _myProperty release ];

    _myProperty = nil;

    [ super didReceiveMemoryWarning ];
}

在ARC下,完全一样,只不过不用调用release:

- ( void )didReceiveMemoryWarning:
{
    _myProperty = nil;

    [ super didReceiveMemoryWarning ];
}

将您的属性设置为nil会在ARC下自动释放它。
所以它确实做了一些事情。

如果它对你不起作用,那么你肯定有另一个问题。
确保你没有内存泄漏,也没有保留周期 http://cocoawithlove.com/2009/07/rules-to-avoid-retain-cycles.html.

最后一个肯定是有问题的...

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

如何释放 ARC 中的内存以进行高内存使用图形渲染? 的相关文章

  • AVAssetWriter 如何编写下采样/压缩的 m4a/mp3 文件

    我正在尝试获取本地 m4a 或 mp3 文件并压缩 下采样该文件 为了制作更小的文件 最初 我使用 AVAssetExportSession 将 AVAsset 导出到临时目录 但我对压缩 下采样没有任何控制 您只能使用预设 其中只有 wa
  • iCarousel 滚动不顺畅

    我正在使用 iCarousel 滚动标签 在模拟器上一切正常 但在 iPad iPhone 上滚动不顺畅和快速 这是代码 城市列表视图 h import
  • 添加事件侦听器到回合制 ios 游戏时出现警告

    这是 gamekithelper m 中的代码 void authenticateLocalPlayer 1 GKLocalPlayer localPlayer GKLocalPlayer localPlayer add a weak lo
  • NSDateComponents 工作日没有显示正确的工作日?

    我得到了一个 NSDate 例如 1 6 12 星期五 并试图找出它是星期几 我的一周从星期一开始 所以星期五应该是工作日 5 NSCalendar calendar NSCalendar alloc initWithCalendarIde
  • 是否可以强制 MapKit 显示所有注释而不进行聚类?

    我有两个类都符合MKAnnotation 我想知道有没有办法强制MapKit当用户缩小并显示所有注释时不聚集注释 上述解决方案对我不起作用 但是这个解决方案有效 final class CarPinMarkerView MKMarkerAn
  • UITableview Commit EditingStyle 具有多个按钮? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 UITableview 提交编辑样式中添加多个按钮 我需要显示一个带有删除按钮的更多按钮 由于无法使用公共API 所以你可以更好地
  • iOS 静态与动态框架说明

    我不得不承认 随着 iOS 8 的发布 我对 iOS 中的动态框架和静态框架有点困惑 我正在寻找一种方法来分发我创建的库 并且我需要支持 iOS 7 及更高版本 注意 这将是一个专有框架 我不能使用 cocoa pods 也不能分发源代码
  • 在 UITableViewCell 中动态显示秒表计时器

    我想保存计时器值并从新的开始显示它UITableViewCell但我的问题是 我成功地能够在第一个单元格上显示秒表计时器 但是当我尝试在其中添加新单元格时UITableView所以我的计时器设置为第二个单元格 我无法定义如何让我的第一个计时
  • 处理ios设备方向

    我的 uiview 遇到问题 具体取决于设备方向 我遇到的主要问题是 UIDeviceOrientationFaceUp UIDeviceOrientationFaceDown 扰乱了我的视图 我只想支持纵向和横向 左右 因此如果设备改变方
  • SwiftUI 从一个列表拖动到另一个列表

    我正在尝试在列表之间拖放 我尝试过的 我找到了一个在 UIKIt 中执行此操作并使用 UIViewControllerRepresentable 的解决方案 但这不是我想要的 另一个解决方案是在列表上使用 onDrag 但这在 iPad 上
  • 如何在应用程序打开或关闭的情况下在后台的特定日期时间快速运行任务

    我正在开发闹钟应用程序 我需要在特定时间安排闹钟 我使用scheduleLocalNotification用于安排警报 它工作正常 如我所愿 BUT在触发警报之前 我需要向 API 服务器发出请求 在该请求中 我想检查从 API 服务器返回
  • 在屏幕外绘制 uiview

    我想创建一个 UIView 它在调用 ViewDidLoad 时位于屏幕外 但一旦调用某个函数 我就会将其动画显示到屏幕上 用于对 UIView 进行动画处理的代码很好 但我似乎无法从屏幕外绘制 UIView 我已将故事板中的 UIView
  • 保护移动连接 - 存储秘密和密钥

    感谢您花时间阅读本文 我是一名年轻的开发人员 在 Web 项目和服务器端编码方面拥有一些专业经验 但我现在正在构建我的第一个移动应用程序 经过在线深入研究后 我还没有能够澄清我关于保护移动应用程序数据传输的一些问题 这是我认为我理解正确的
  • 如何在 iOS 中将 NSData 变量转换为 NSInteger 变量

    我有以下返回的 api 方法NSData 我在另一个视图控制器中调用了这个方法 如何转换NSData to NS整数 NSData getBusXMLAtStop NSString stopnumber NSMutableURLReques
  • kCVPixelFormatType_420YpCbCr8BiPlanarFullRange 帧到 UIImage 转换

    我有一个应用程序可以捕获 kCVPixelFormatType 420YpCbCr8BiPlanarFullRange 格式的实时视频来处理 Y 通道 根据苹果的文档 kCVPixelFormatType 420YpCbCr8BiPlana
  • 我安排一个计时器使用 readRSSI 函数读取 RSSI,但是当我的应用程序进入后台时计时器停止

    我安排一个计时器使用 readRSSI 函数读取 RSSI 但是当我的应用程序进入后台时计时器停止 也许有一个好方法可以在应用程序进入后台时从外围设备的通知中获取 RSSI 值 但我不知道该怎么办 有人可以帮助我吗 有人有更好的方法吗 我也
  • Siri - 联系人搜索行为类似于 Skype 的音频通话

    我正在实现一个 VoIP 应用程序 我需要通过 Siri 发起呼叫 我能够通过 Siri 发起呼叫 但问题是 每次启动应用程序时 尽管联系人不在应用程序的联系人列表中 我不知道如何以及在哪里处理这个问题 我的意思是 如果应用程序没有像 Sk
  • 如何使用 AVCaptureVideoPreviewLayer 从相机应用程序实现 2 倍变焦

    我的应用程序中有一个 AVCaptureVideoPreviewLaye 它运行良好 并且显示与相机应用程序相同的预览视频 我想实现相机应用程序的 2 倍变焦功能 我该怎么做呢 基本上 我希望我的预览层将视频源更改为与您在点击 1x 图标将
  • 在 iPhone 应用程序中获取路线和路线导航

    我正在开发一款应用程序 该应用程序将重点关注在驾驶时为用户提供路线和逐段指示 他们在驾驶过程中留在应用程序中非常重要 因此我真的不想让他们离开应用程序并转到内置的地图应用程序 我最近对如何包含此功能进行了大量研究 众所周知 这并不容易 因为
  • UICollectionview 单元格选择

    我制作了一个图像网格 为了显示其选择 我在选择时为图像绘制了边框 但问题是 当我选择顶部的一些图像并向下滚动图像网格时 底部的其他一些图像似乎也被选择了 下面是我的代码片段 UINib cellNib UINib nibWithNibNam

随机推荐