NSMutableArray 内的块泄漏 (ARC)

2023-12-03

我有一些在块内的操作。此操作,仅更新一个UIImage像这样:

^(UIImage *image) {
            self.myImage = image;
        }];

我的图像是通过访问互联网来计算的NSURLConnection。当我从互联网上收到图像时,我称该块为NSMutableArray。到目前为止,一切都很好。我的问题是,当我有多个具有相同 URL 的图像时,我只需向NSMutableArray在处理连接的类中。这样,我只需进行一次调用,即可更新共享该 URL 的多个图像。一切正常,问题是我正在泄漏块。我将这样的块添加到NSMutableArray:

 if( (self = [super init]) ) 
    {
        self.connectionURL=url;
        self.arrayOfBlocks=[NSMutableArray array];
        [arrayOfBlocks addObject:completion];
    }
    return self;

这是连接类初始化的时候。这是我需要向其中添加一个新块的时候NSMutableArray(我只是添加了它,仅此而已):

[arrayOfBlocks addObject:completion];

这是我终于收到回调并开始执行块的时候:

 for (MyBlock blockToExecute in arrayOfBlocks)
    {
        blockToExecute([UIImage imageWithData:data]);
    }

问题是这会以某种方式泄漏。我无法使用发布或自动发布来抵消,因为我处于 ARC 环境中。那么有什么解决办法呢?


enter image description here


这是苹果框架中众所周知的漏洞。这不是由您使用块引起的。

Here's 上一个问题关于它和一个错误报告.

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

NSMutableArray 内的块泄漏 (ARC) 的相关文章

  • 两者都实现了类。将使用两者之一

    我有一个项目 它具有使用 SocketRocket 的依赖项 通过 CocoaPods 安装 并从 HeapAnalytics 导入了静态库 显然 HeapAnalytics 库已经使用了 SocketRocket 编译时没有出现错误 但在
  • 多次添加同一个子视图来查看

    我不知道这是否可行 但我想做的是将子视图多次添加到视图中 我尝试过这样的事情 self view addSubview newView newView center CGPointMake 160 100 self view addSubv
  • 无法将“SDWebImageActivityIndi​​cator”类型的值分配给“ST_SDWebImageIndicator”类型?

    I have multiple flavours targets in my Xcode project I am also using SDWebImage in my app Everything was working fine un
  • 在 Flutter 中显示 iOS 的 PDF 内联文件

    我正在 flutter 中专门为 iOS 开发一个应用程序 现阶段 我需要向其中添加 PDF 文件 问题是 flutter 没有原生的方式来显示 PDF 文件 据我研究 由此tread https github com flutter fl
  • 是什么导致了这个 iPhone 崩溃日志?

    我有点卡住了 需要解决这个问题 因为我的一个应用程序出现了随机崩溃 而这些崩溃并不总是能够重现 这是崩溃日志之一 Incident Identifier 59865612 9F00 44EA 9474 2BF607AD662E CrashR
  • 自动布局、UIDynamics 和动画

    我对自动布局还很陌生 并且对如何为视图设置动画感到困惑 我读了很多 我知道你必须遵守限制 编辑它 然后包装layoutIfNeeded in an UIView动画块 但当真正要做的时候 我却有点失落 我很乐意有人能向我解释如何做这个动画
  • 如何检测Retina高清显示屏?

    UIScreen有一个新的 nativeScaleiOS 8 中的属性 但文档没有提及它 property nonatomic readonly CGFloat nativeScale 还有一个scale属性 但文档说它是 2 用于视网膜显
  • iOS 8 中的 UISplitViewController 状态恢复

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

    我有一个 UIViewController parent 调用presentModalViewController与另一个 UIViewController child on viewDidLoad If parent没有 UINaviga
  • iOS UIButton 带有圆角和背景 bug

    我发现圆形 UIButton 存在一个奇怪的问题 这是我创建此按钮的代码块 let roundedButton UIButton type System roundedButton frame CGRectMake 100 100 100
  • 在 Swift 中自动移动 UISlider

    我想在按下按钮时将 UISlider 从 minValue 循环移动到 maxValue 并在再次按下按钮时将其停止在当前位置 我想使用 Swift 我遇到的主要问题是函数 slider setValue 太快了 我希望动画更慢 IBAct
  • 避免“在此块中强烈捕获自身可能会导致保留周期”消息

    每次我必须在块内使用全局变量或属性时 如下所示 self save if isItSaving NO self saveMyFile 我必须像这样重写 BOOL iis isItSaving id myself self self save
  • 如何使用 Swift 获取 YouTube 频道的所有播放列表?

    我的问题不是关于从一般频道检索视频 我只想获取该频道创建的所有 播放列表 并检索每个播放列表的缩略图 标题和视频数量 这是一个 YouTube 频道示例 正如您所看到的 有很多已创建的播放列表 截至目前 我只能获取某个频道最新上传的视频 在
  • 混合静态和动态 UITableViewController 内容会导致 NSRangeException

    我一直在寻找这个错误 并找到了一些具有类似行为的帖子 但没有解决问题的解决方案 我有一个 UITableViewController 在 SB 中声明为静态 它具有以下部分 第 0 部分 配方 是静态的 有 4 个单元格 第 1 部分 口味
  • iPhone 快照,包括键盘

    我正在寻找拍摄整个 iPhone 屏幕 包括键盘 的正确方法 我找到了一些截取屏幕的代码 CGRect screenCaptureRect UIScreen mainScreen bounds UIView viewWhereYouWant
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • iOS WKWebView.scrollView委托导致BAD_ACCESS

    我的 viewController 有一个 UIView 属性 其中包含一个 WKWebView 我将 WKWebView rollView 委托设置为我的 viewController 它是我的 UIView 子类的公共函数 并在我的 v
  • 在 Instruments 中查找内存泄漏行

    我是 iOS 中的仪器新手 我正在尝试使用 Xcode 4 5 2 并按照本教程查找仪器中的内存泄漏 http soulwithmobiletechnology blogspot sg 2011 04 how to check memory
  • 我应该在哪个方法中设置 UITextField 的委托?

    在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一个好习惯吗 我尝试在 init 方法中将委托设置为 self 但它没有调用相应的委托方法 当我将代码移动到 viewDidLoad 中时 它注册为将 s
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值

随机推荐

  • 嵌套数组上的 Swift 相等运算符

    为什么最后一条语句无法编译并出现错误 Binary operator cannot be applied to two Simple operands 有没有办法修改Simple构造或扩展 运算符能够对嵌套数组 或字典 执行相等性检查 va
  • Python 中的客户端与服务器通信

    我已经建立了客户端 服务器通信 问题是我无法发送多于一条消息 我尝试修复它 但我不知道出了什么问题 这是我的代码 服务器代码和客户端代码在两个不同的Python窗口中运行 server import socket s socket sock
  • Ember-Data:访问旁加载资源列表?

    我有一些 JSON 具有这种结构 documents路径 ID 是 UUID tags id a33fc396 2428 11e3 8eeb 0800270f33f4 name test
  • 如何在 Pandas 中使用 allocate() 方法创建包含空格的列

    样本数据 import pandas as pd df1 pd DataFrame Original City Daimler Chicago Mitsubishi LA Tesla Vienna Toyota Zurich Renault
  • Javascript 中的即时搜索功能

    我正在使用以下 JavaScript 来实现即时搜索功能 以检测访问者何时停止书写 因此该功能不会在每次按键时运行 它可以工作 但延迟超过 1000 毫秒 即使我将其设置为 200 毫秒 即时搜索功能运行之前也会有 1 2 秒的延迟 是否有
  • 如何使用 .pfx 文件签署 Java 小程序?

    我试图使用本指南使用我们公司的 pfx 证书签署 jar 小程序存档 以及来自互联网的其他一些内容 http www globalsign com support ordering guides SignJavaCodeAppletsPFX
  • 从字符串中去除中文字符(vba)

    我正在使用 Microsoft Project VBA 将我的活动名称从英文翻译成中文 我的问题是我在一些英文活动名称中嵌入了一些中文翻译 我想在将字符串传递给 Microsoft Translator 之前去掉中文字符 关于我如何做到这一
  • Android ListView ArrayList 上的空指针异常

    我有一个显示数组列表内容的列表视图 我正在使用一个简单的适配器来实现这一点 就像这样 public static ArrayList
  • Docker 使用 Java 实现两个容器之间的通信

    有两个java文件 Server java和Client java 两者都在单独的容器中 码头工人文件 我用于服务器的 dockerfile 在名为 服务器 的文件夹中 是 FROM java 8 COPY Server java RUN
  • 会话过期后从数据库中删除它吗?

    这可能是一个愚蠢的问题 但我想知道每 15 分钟从数据库中删除所有过期的 会话 是否是一个好主意 或者只是把它留在那里 会话在 X 分钟后过期 不再有用 似乎只是占用空间 当我的团队在 NET 应用程序中部署 SQL Server 会话状态
  • 使用 NSGlyph 和内存分配

    在跟踪换行符的方法中频繁地 for a NSTextView visibleRect 我正在分配内存NSGlyph to use NS布局管理器 getGlyphs range 我应该 可以找出这应该有多少内存 因为我有范围的参考 不影响布
  • FindAll 包含涉及复杂的多对多关系 (sequelizejs)

    这有软件工程 SE 中的一个兄弟问题 考虑Company Product and Person 之间存在多对多的关系Company and Product 通过联结表Company Product 因为给定的公司可能生产不止一种产品 例如
  • init_fs_encoding:无法获取文件系统编码的Python编解码器

    我正在 apache 上运行 Django 网站 这是我的尾巴httpd conf file ServerName 127 0 0 1 8080 Django Project LoadFile c python39 python39 dll
  • 在 Linux 上使用可滚动 x(时间/水平)轴绘制数据

    我想绘制 x 轴较长的数据 如果我绘制整个 x 轴 那么绘图就会缩小并且几乎无法读取 我发现了this回答 SO 指向下列的scipy matplotlib 代码 但是当我尝试运行上述代码时 出现以下错误 Traceback most re
  • Java-不透明颜色

    我正在尝试画一些线 问题在于颜色 例如 我有几条红色线 然后我画了一条蓝色线 或相反 有时 对于最后一个来说 那条线更多 是不透明的 我尝试制作新颜色并使用 alpha 复合 0 7 设置颜色 对于更多线条 我保留默认的一种颜色 不透明 a
  • 如何使用 iOS 获取 UIKeyboard 大小

    有没有办法以编程方式获取 UIKeyboard 大小 横向高度为 216 0f 高度为 162 0f 以下似乎已被弃用 有没有某种方法可以在 3 0 iPhone OS SDK 和 4 0 iPhone OS SDK 中没有任何警告的情况下
  • 在Python中动态定义/更新ctypes结构

    我已经在 ctypes 中创建了子结构和结构 如下所示 我在结构内部定义了具有某种预定义大小的子结构数组 根据要求SIZE可以设置为0最初 可能会根据用户输入而变化 from ctypes import class MySubStructu
  • 使用回调将 C 库 (GSL) 包装在 cython 代码中

    我是新手cython and c 我想使用 cython 来加快代码的性能 我想用gsl integration我的代码中的库用于集成 更新 test gsl pyx cdef extern from math h double log d
  • 如何在Android中每分钟获取gps坐标?

    我想每分钟获取我的坐标 即使用户没有移动 所以我使用 requestLocationUpdates 和以下参数 locMgr requestLocationUpdates LocationManager GPS PROVIDER 60000
  • NSMutableArray 内的块泄漏 (ARC)

    我有一些在块内的操作 此操作 仅更新一个UIImage像这样 UIImage image self myImage image 我的图像是通过访问互联网来计算的NSURLConnection 当我从互联网上收到图像时 我称该块为NSMuta