表视图单元格按钮关闭是否需要弱自我

2023-12-01

为了避免保留循环,将使用[weak self] in在 UITableViewCell 按钮操作中是否有必要?例子:

在视图控制器中cellForRow

cell.buttonAction = { (cell) [weak self] in
     self.someFunction()
}

在 TableViewCell 类中

var buttonAction: ((UITableViewCell) -> Void)?

@IBAction func buttonPressed(_ sender: Any) {
     buttonAction?(self)
}

要考虑的关键是:

var buttonAction: ((UITableViewCell) -> Void)?

您正在提供存储一个函数长期在实例属性中。

现在想想谁引用/拥有谁。视图控制器拥有它的视图,该视图是或拥有拥有单元格的表视图。同时细胞也拥有这个功能。如果该函数强烈引用我刚才提到的任何对象,这是一个保留周期。它是一个classic保留周期,保留周期如何形成的绝对模型。


[I would like to add a word about how I test for these things. There's a really cheap and easy way: wrap your view controller up in a navigation controller plus a blank root view controller, so that you can push your view controller onto it. Implement deinit in your view controller. Now run the app, push your view controller, play with it for a bit, and pop it with the Back button. If deinit isn't called, you've got a retain cycle.]

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

表视图单元格按钮关闭是否需要弱自我 的相关文章

  • 如何在导航栏中添加右键?

    我有一个问题要在导航栏中添加右键 我有两个视图 视图 A 和视图 B 我添加了一个导航栏来查看A 之后我使用了self navigationController pushViewController显示视图 B 视图B的导航栏左侧自动显示一
  • 在 iPhone 上使用 Xcode Auto Layout 处理不同的图像尺寸

    通过纵向 iPhone 的自动布局 我不希望 iPhone 6 上的游戏角色的 UIImageView 尺寸与 iPhone 4S 中的完全相同 4S 的角色需要更小一些 否则看起来会太大 使用自动布局如何更改 iPhone 之间的图像尺寸
  • 清空 Firebase DatabaseReference 不会停止观察,这绝对正确吗?

    In the Firebase 太棒了 你做这个 var r1 DatabaseReference nil 然后这个 r1 Database database reference withPath score bucks r1 observ
  • Xcode 12 根本没有调用动态链接 Firebase 函数?

    因此 我有一个正在运行的动态链接 当我单击它时它会打开应用程序 但不会发生动态链接的处理 这是因为下面看到的应用程序功能从未输入过 我不知道为什么 func handleIncomingDynamicLink dynamicLink Dyn
  • Xcode 8 beta“错误”对于这种情况下的类型查找不明确

    根据这篇文章 我需要指定模块来查找对象类型 在此上下文中 方法 对于类型查找不明确 Alamofire 中的错误 https stackoverflow com questions 33543597 method is ambiguous
  • 循环缓冲区录音 iOS:可能吗?

    我的一个客户想要连续录制音频 当他单击 提交 时 他只想提交最后 10 秒的内容 所以他想要连续记录并且只保留最后 x 秒 我认为这需要类似循环缓冲区的东西 但是 作为 iOS 的新手 它看起来像AVAudioRecorder只能写入文件
  • 是否可以在无需升级 iOS 企业应用程序的情况下更新配置文件?

    新生成的配置文件似乎不再与同一应用程序的旧版本兼容 新应用程序确实适用于新配置文件 但是我们不想升级链接到旧版本后端且并非全部与最新应用程序兼容的所有应用程序 我们确实需要尽快更新配置文件 以保持旧应用程序正常运行 我们之前已经这样做过 但
  • 显示不带字母的数字键盘

    iOS 默认数字键盘中是否有隐藏数字下方字母的选项 对于某些电话语言 键盘显示时不带字母 抱歉 你所要求的是不可能的 这取决于键盘语言 只有用户可以更改键盘语言 我希望这能帮到您
  • 编码的 nsdata utf8 json,在 ios 中带有重音字符

    我向网络服务器发出一个发布请求 该服务器用 JSON 回答我 这是响应的标头 Cache Control private Content Length 826 Content Type application json charset ut
  • 当用户到达 UITableView 的最后一行时,如何动态添加行?

    我有一个UITableview当前显示 10 行 固定为静态 现在我想在其中添加一个功能 当用户到达最后一行时 我想向表中添加更多 10 行UITableView 我的意思是目前我在应用程序中显示固定的 10 行 但现在我想在用户到达上一个
  • 将 UITableViewDataSource 与具有子视图的自定义单元格结合使用

    在 UITableView 中使用自定义单元格时 我遇到了奇怪的表格重叠 Problem 向下滚动 最后两行上面画有顶部两行 向上滚动 前两行上面画有下面两行 这是 UITableViewDataSource 的代码 func tableV
  • iOS 8 支持动态链接吗?

    直到 iOS7 之前 出于安全考虑 Apple 都不支持动态链接 开发人员之间的代码重用通常依赖于静态库 这些静态库是作为应用程序可执行文件的一部分构建的 在 iOS8 中引入扩展似乎稍微改变了这一点 因为扩展是单独的可执行文件 扩展及其包
  • 对于 Swift 中的计算器

    只是要警告你 我是 Swift 的新手 我仍在适应它的工作原理 我一直在尝试在课堂上完成这个计算器项目 问题是 我需要练习简化代码 现在 当按下数字按钮时 我将其保存在这样的数组中 IBAction func buttonPressed s
  • TDD iOS 教程 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您好 我正在寻找非常好的 iOS TDD 教程 请您帮助我 什么是最好的 iOS TDD 书籍 博客
  • iOS 中如何清除特定域的 cookie?

    我已经搜索了 StackOverflow 上的几乎所有问题来寻找我的问题的答案 我还没有找到任何有用的链接或教程来说明哪种方式最好清除特定域的 cookie 如果有人可以帮助我 请 我自己找到了解决方案 如果您想删除 UIWebView 中
  • 如何建立辅助NSSortDescriptor排序键?

    我已成功按排序键对数据进行排序lastName 但我想知道如何排序lastName 然后由firstName 这是我用来排序的代码lastName NSSortDescriptor sortDescriptor NSSortDescript
  • 滑动删除不起作用

    滑动删除功能在我的表格视图中不起作用 我已经在导航栏中实现了 commitEditingStyle 委托和编辑按钮 因此 当用户单击编辑按钮时 删除和添加按钮会相应显示 但是 在滑动时 删除按钮不会出现 并且似乎它无法将滑动识别为对 set
  • 如何在 SwiftUI 中将阴影应用于内部视图?

    我在周围添加了阴影VStack其中包含我的两个文本字段和一个提交按钮 然而 阴影也被应用到了文本框内的两个文本字段 VStack 我在这里缺少什么导致这种情况发生吗 我尝试添加shadow radius 0 在文本字段上 但它不会改变任何内
  • 当应用程序退出活动状态时,MPMovies PlayerViewController 被解雇

    当我将 iPhone 设置为睡眠状态 切换到另一个应用程序等 然后再次返回时 之前的可见内容MPMoviePlayerViewController 提出与presentMoviePlayerViewControllerAnimated 已经
  • 是否可以使“HTML 到语音”与“文本到语音”相同?

    我有一个奇怪的要求 在我现有的应用程序中我有Text2Speech为此 我使用了AVSpeechSynthesizer 到语音文本 但现在要求发生了变化 现在我需要将 HTML 文件数据转换为文本 例如HTML2Speech 我们可以想到的

随机推荐

  • 以编程方式链接到特定(非函数)文档页面

    作为为我的代码编写一些文档的一部分 我想包含一个可运行的命令 该命令将向用户显示我所想到的来自 MATLAB 文档的一些特定文档页面 当所需页面属于某个功能或工具时 例如 doc cftool 或者 如果可能存在歧义 也可以指定文件夹 包名
  • 如何根据 Out- Alu 输出的值执行跳转指令

    图来自 计算机系统要素 Nand2Tetris 看看场景 j1 1 out lt 0 j2 0 out 0 j3 1 out gt 0 这种情况如何可能输出 也是如此输出 gt 0 but out 0是假的 如何out可以同时具有正值和负值
  • xcode 4.6 目标构建设置缺少“Apple LLVM 编译器 4.2 - ...”部分

    在 xcode 4 6 中 我创建了一个具有多个目标的新项目 我的目标之一是一个空的 iOS 应用程序 缺少目标构建设置中的所有 Apple LLVM 编译器 4 2 部分 还有其他人看过这个吗 关于如何让它们显示有什么想法吗 我能够通过六
  • 如何左对齐 jqmath 表中的元素

    如果我尝试创建一个表jqmath 它总是以元素为中心 所以如果我写 table a b c dddddddddddd 然后我得到 a b c dddddddddddd 如何使 jqmath 将列向左对齐 以便表格显示为 a b c dddd
  • 从 CSV 读取列数据

    我有一个 CSV 文件 Name Age Data Test 22 Yes Test2 23 No Test3 43 Yes 如何使用 PowerShell 处理此文件 以便我可以复制此功能 foreach var HeaderName i
  • 使用 Docker Compose 将 DDEV Web 容器端口公开给主机

    我已经配置了 DDEV Drupal 环境 需要在其中为我的主题运行 Pattern Lab 这个环境将由我的学生使用 他们可能不熟悉在本地计算机上安装 Node 或 Node 依赖工具 Pattern Lab 需要 Node 作为解决方法
  • 谷歌字体字体粗细为 100 不起作用

    我有一个 Android 游戏 它使用谷歌字体中的 Raleway 字体 在游戏中它看起来不错 我也想在网站上使用该字体 但字体显示不一样 我在游戏中使用Raleway Thin 这与我想在网站上使用的相同 我遇到的问题是细字体并不像游戏中
  • sqlsrv_connect:未找到数据源名称且未指定默认驱动程序

    我在将 PHP 与远程计算机上运行的 SQL SERVER 2008 连接时遇到困难 我有 php 版本 5 4 3 和 apache 2 2 22 我的计算机上已经运行了 SQL SERVER 2008 我的 wamp bin php p
  • 如何为 GlassFish 域指定 JDK?

    我已经安装了 GlassFish 2 1 1 我安装了 1 5 和 1 6 JDK 尽管我的 JAVA HOME 变量设置为 1 5 版本 并且 java version 和 javac version 都显示 1 5 但每当我启动 gla
  • openCV c++:使用 XgBoost(Adaboost 分类器)时出现问题

    我正在创建一个应用程序 用于对城市环境图像中的人类进行分类 我通过以下方式训练分类器 int main int argc char argv STEP 2 Opening the file 1 Declare a structure to
  • 课堂上的陈述作业

    class foo object def enter self print Enter def exit self type value traceback print Exit def method self print Method w
  • Wildfly 在 EAR 之间共享会话?

    我在 2 个独立的 EAR 中有 2 个 WAR 应用程序 我想将它们部署在 Wildfly 10 JBoss 7 EAP 的单个实例中 我如何在两场战争之间共享会话 身份验证 Ex EAR1 WAR1 EJB libs EAR2 WAR2
  • 如何在matlab中计算指数而不得到inf?

    标题说明了一切 我想在 matlab 中计算一个大数字的指数 但我得到了溢出 它只返回无穷大 gt gt 100 1000 ans Inf 上次我检查时 100 1000 明显小于无穷大 正如 Daniel 已经指出的那样 这个数字太大了
  • 如果不允许跨域ajax调用那么你应该如何使用谷歌电子表格API

    如果不允许跨域ajax调用那么你应该怎么做this 注意 链接已废弃 问题已更新为相关原始页面的相关部分 来自链接 开发人员指南 协议 v 2 0 Google Spreadsheets API 添加一行 要向表中添加一行 首先创建一个
  • 如何检测用户何时清除应用程序的通知

    我的应用程序有通知功能 当我收到通知时 我的应用程序图标中会显示一个徽章 据我所知 当我的应用程序处于后台时 由于用户没有单击通知中心的通知 因此我的应用程序不知道它有通知 所以它不能改变徽章号码 也来自这个主题 检测用户何时清除通知中心的
  • 执行 del 批处理文件时排除 temp 内的文件夹

    如果我想排除要删除的文件夹内的文件夹 我应该在 DEL 批处理文件中添加什么 我有这个代码来删除临时文件夹的所有内容 DEL F Q C temp 现在 我想排除一个名为导入文件夹里面 无论它是否存在于临时文件夹中 都不应被删除 我该怎么做
  • 如何在编译的 dart 中请求全屏

    我正在玩一个 Dart 应用程序 试图让全屏模式正常工作 我的 HTML 不包括样板 div Clicking this should cause it to go fullscreen div 我的飞镖代码 import dart htm
  • 您需要在此活动中使用 Theme.AppCompat 主题(或后代)。更改 Theme.AppCompat 会导致其他错误

    我在我的应用程序中使用 appcompat v22 1 0 并使用工具栏 我使用时一切都很好Theme AppCompat Light NoActionBar 当我开始实施时AlertDialog 它会产生这样的错误 java lang I
  • 在 AngularJS 中从父控制器调用指令控制器的方法

    我正在使用 AngularJS 并且我有一个指令 它有自己的控制器 它继承了父控制器的范围 例如 请考虑以下情况 function ParentCtrl scope aMethod function DO SOMETHING functio
  • 表视图单元格按钮关闭是否需要弱自我

    为了避免保留循环 将使用 weak self in在 UITableViewCell 按钮操作中是否有必要 例子 在视图控制器中cellForRow cell buttonAction cell weak self in self some