运行循环结束——自动释放池恢复

2023-11-22

据我了解,一旦自动释放池被释放,自动释放的对象就会被清理。现在,自动释放池将在运行循环结束时释放。

我的问题是,如果在我的类中我没有创建自定义自动释放池并对该类中的某些对象调用自动释放方法,那么这些对象在什么时候会被恢复? “运行循环结束”是否意味着“应用程序结束”?


您必须了解运行循环的概念。 iOS 中的运行循环等待某个事件发生,然后对其采取行动。该事件可能是用户触摸屏幕、接听电话等。

对于 iOS 处理的每个此类事件,new自动释放池在开始时创建,并在事件处理完成时耗尽。理论上,Cocoa Touch 可以创建任意数量的嵌套自动释放池,但您应该了解的主要一个是事件循环。

也许这张图来自应用程序生命周期会有帮助的。

UIKit event loop.

在伪代码中,这可以归结为,

int UIApplicationMain(...) {
    while (!shouldQuitApplication) {
        Event *someEvent = // wait for next event;
        NSAutoreleasePool *myPool = [[NSAutoreleasePool alloc] init];
        // handle event
        [myPool release];
    }
}

这些是 iOS 中的事件类型

UIEventTypeTouches,
UIEventTypeMotion,
UIEventTypeRemoteControl,

因此,在处理每个触摸、运动或远程控制事件后,池将被清空。

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

运行循环结束——自动释放池恢复 的相关文章

  • NSString 到 TimeInterval

    我有一个 NSString 的格式00 00 00 00最初获得自 dateFormatter setDateFormat HH mm ss SS 我如何获取该字符串并将其转换为 TimeInterval 如果您 100 绝对肯定这种格式永
  • 如何跟踪此对象图深度优先搜索算法中的深度?

    我有这段代码 它迭代一棵树 进行深度优先搜索 每个元素都只处理一次 非常好 void iterateOverTree TreeNode node NSMutableArray elements NSMutableArray array el
  • ScrollView 内的 SwiftUI 列表

    我想将列表放在 ScrollView 中 以便可以一起滚动列表行和标题 但我发现 ScrollView 中的 List 不起作用 它什么也没显示 我应该同时使用它们 我应该使用 ScrollView 这样当我滚动行时 我可以使标题 图像或文
  • 如何获取 UIImage 的大小(以 KB 为单位)?

    有没有办法从 UIImage 获取以 KB 为单位的文件大小 而不从 didFinishPickingMediaWithInfo 获取该图像 所呈现的图像来自相册 我尝试了以下代码 但这给出了以下结果 图像大小 KB 0 000000 vo
  • 是否可以在不点击的情况下显示多个标记的多个信息窗口?

    我想在谷歌地图中显示多个标记的多个信息窗口 信息窗口应该在不点击标记本身的情况下显示 是否可以 经过研究 我了解到将标记设置为地图视图选定标记可以使信息窗口显示而无需点击它 但是 不能一次选择多个标记作为地图视图的选定标记 有什么可以做的吗
  • 从选定的文件夹中获取大小 >100MB 的文件列表及其路径目标 c

    我想获取我的 mac 系统的所有文件及其路径和大小的列表 由此 我只想过滤那些文件大小超过 100 MB 的文件 我使用下面的代码获取了系统的大小 NSError error NSFileManager fileManager NSFile
  • iPhone Objective-C 以编程方式将范围按钮添加到 UISearchBar

    我目前这段代码用于创建 UISearchBar 改编自之前的 stackoverflow 示例 UISearchBar searchBar UISearchBar alloc initWithFrame CGRectZero searchB
  • 身份验证后如何退出 Google

    所以我的应用程序可以选择使用 Google 登录 单击 Google 提供的按钮后 将打开一个 Web 视图并让用户输入其凭据 允许应用程序访问其信息后 应用程序将用户登录并将 SignInViewController 更改为 TabBar
  • 如何在iPhone sdk静音模式下播放声音文件?

    如何在iPhone sdk静音模式下播放声音文件 我正在尝试以静音模式播放声音文件 但结果为零 我试过这段代码 SystemSoundID soundID AudioServicesCreateSystemSoundID CFURLRef
  • iOS 11 /“Apps-prefs=root”功能在更新到 Swift 3 后不起作用

    我对 Swift 编程还很陌生 我制作了一个简单的测试应用程序 可以通过特定按钮以编程方式打开设置 不幸的是 更新按钮后 没有打开所需的设置页面 在本例中为 wifi 页面 而是仅打开通用设置屏幕 有人可以帮助我了解 swift 4 中究竟
  • 同一视图中的多个 UIAlertView

    我有两个带有确定 取消按钮的 UIAlertView 我通过以下方式捕获用户响应 void alertView UIAlertView alertView didDismissWithButtonIndex NSInteger button
  • 带有 HTML 的 UIActivityViewController

    当我将包含 HTML 内容的字符串作为数组元素传递给UIActivityViewController initWithActivityItems方法中 它不会在选定的 共享 控制器中将其呈现为 HTML 而是呈现 HTML 源 即标记而不是
  • 在 iOS 上提升 Asio SSL 认证

    我正在尝试在 iOS 上使用 Boost Asio 并且已经解决了所有问题 但如何检查我正在连接的服务器的证书 如何使用 Boost Asio 在 iOS 中检查连接服务器的证书 在我的另一个答案中 您可以看到一个简单的 SSL 客户端 在
  • 如何阻止 Xamarin 在启用位码的情况下构建我的应用程序?

    在我的 iOS 版本的配置中 没有禁用位码的选项 在 Xcode 中可以设置 ENABLE BITCODE NO 我需要这个 因为我的链接框架不是用位码构建的 而且现在苹果不再允许半位码编译的应用程序 In your csproj对于您的
  • 使用 Xcode 资产目录缓存 UIImage

    我们都知道UIImage神秘的幕后缓存机制imageNamed 方法 在苹果的UIImage 类参考 https developer apple com library IOS documentation UIKit Reference U
  • 在 Xcode 中查看 TestFlight 崩溃日志

    我已将我的应用程序发送给 TestFlight 的一些外部测试人员 仅当您从 testFlight 安装应用程序时才会出现问题 如果我从 Xcode 安装它 一切都很好 因此 我必须从 iPhone 中删除我的应用程序 并将自己添加为外部测
  • “UITableViewCell 附件复选标记”是图像吗?

    我需要定义一个自定义UITableViewCell哪里的UITableViewCellAccessoryCheckmark位于 a 的左侧UILabel 我应该将其定义为图像还是有更聪明的方法 非常感谢 卡洛斯 这只是一个关于苹果文档 ht
  • 具有自定义背景图像的 iPhone UITableView PlainStyle - 在代码中“完全”完成

    我已经走遍了所有的地方 似乎UITableView静态背景问题已有详细记录 但没有人有直接的解决方案 我正在建设我的TableViews完全在代码中 如下所示 UIViewController tableViewController Tab
  • 将 Unmanaged 与 nil 进行比较

    代码是从这篇博客文章复制的 http matthewpalmer net blog 2014 06 21 example ios keychain swift save query http matthewpalmer net blog 2
  • 如何从我的 appDelegate 访问我的 viewController? iOS系统

    我有一个在 xCode 中创建为 基于视图的应用程序 的 iOS 应用程序 我只有一个 viewController 但它会自动显示 而且我没有看到任何将它与我的 appDelegate 关联的代码 我需要将数据从 appDelegate

随机推荐

  • 如何使用 lucene.net 实现多个过滤器的搜索

    我是 lucene net 的新手 我想在客户端数据库上实现搜索功能 我有以下场景 用户将根据当前选择的城市搜索客户 如果用户想要搜索其他城市的客户 则必须更换城市并重新进行搜索 为了细化搜索结果 我们需要提供针对区域 多个 Pincode
  • 滚动时检测 RecyclerView 何时到达最底部位置

    我有 RecyclerView 的代码 recyclerView RecyclerView rootview findViewById R id fabric recyclerView recyclerView setLayoutManag
  • Eclipse 项目中缺少 Maven 依赖项

    我们用maven建立了一个项目来解决依赖关系 它通常工作正常 但现在我尝试在新 PC 上编译并运行它 但我遇到了 Eclipse 中缺少依赖项的问题 有趣的是 如果我在控制台或 Eclipse 中运行 mvn package 它工作正常 甚
  • 具有 API 的开源论坛

    有人对基于 PHP Python 或 J2EE 的网络论坛有什么建议吗 该论坛具有良好的 API 可以通过编程方式创建用户和论坛主题 phpBB第一个想到的就是开源 因为它是免费的 实际上 几乎所有论坛平台都有某种 api 您可以通过编程方
  • APC 与 PHP 5.4 或 PHP 5.5 兼容吗?

    APC 似乎没有更新以与 php 5 4 版本一致 我希望他们像最初计划的那样将 APC 包含在 PHP 核心中 对于当前 APC 是否适用于 php 5 4 我似乎找不到任何明确的答案 我设法找到 php 5 4 的 Ubuntu 软件包
  • 如何将 Angular JS 集成到 Grails 2.3.4 中?

    我正在运行grails 2 3 4并考虑将 angularjs 集成到我的下一个应用程序中 我认为从服务器端来说最好的方法是使用grailsREST域和控制器类中的集成 然而我被困在这里了 如何让 grails 与 angularjs 进行
  • 为什么从 int 到 float 的转换会对值进行四舍五入?

    我正在阅读 CS APP 关于演员阵容 它说在演员阵容时从int到float 数字不能溢出 但可能会被四舍五入 这对我来说很奇怪 因为我不知道要舍入什么 所以我尝试了一下 我认为这只适用于非常大的整数 接近INT MAX INT MIN 但
  • 从 Excel 文档中的代码隐藏访问 ActiveX 或 Form 对象(文本框)

    Excel 文件中有几个作为 ActiveX 对象的文本框 我想从代码隐藏中访问它们 我正在将 ClosedXML 用于其他领域 但我愿意接受其他建议 要从 C 访问 OLE 对象 请添加对 Microsoft Forms 2 0 对象库的
  • Caliburn.Micro。使用 Autofac 自动为 IHandle 实现者调用 eventaggregator.Subscribe()

    In Caliburn Micro作者的文档提到了这种可能性 文档链接 IHandle继承自标记接口IHandle 这允许使用强制转换来确定对象实例是否订阅任何事件 如果您与 IoC 容器集成 这可以实现简单的自动订阅 大多数 IoC 容器
  • 使用javascript将base64字符串转换为图像

    正在使用 Titanium 开发一个应用程序 我需要将从 JSON 获取的 Base64 字符串转换为图像 我们将非常感谢您的帮助 你可以只创建一个img元素并改变它的src与所需的数据 img src
  • 测试单个数值向量的所有元素之间的相等性

    我正在尝试测试向量的所有元素是否彼此相等 我提出的解决方案似乎有些迂回 都涉及检查length x lt c 1 2 3 4 5 6 1 FALSE y lt rep 2 times 7 TRUE With unique length un
  • 如何将 Paytm 钱包集成到 Android 应用程序中? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想将 Paytm 钱包集成到 Android 应用程序中作为支付选项 就像在 Uber 应用程序中一样 谁能帮我吗 提前致谢 Update Paytm 现已添加文档 https
  • iPhone 喜欢 WPF 项目中的红色徽章通知吗?

    I have a C WPF project which generates daily and weekly reports automatically I want to inform the user when new reports
  • 达特朗等待不止一个未来

    我想在未来的很多功能完成后做一些事情 但我不知道dart中的代码如何编写 代码是这样的 for var d in data d loadData then when all loaded do something here 但我不想一一等待
  • Ajax POST 方法将字符串中的“+”值转换为“”,为什么?

    我不明白为什么在 ajax 中 号会转换为 请解释一下 Use the encodeURIComponent 函数将您的数据转换为请求的有效编码数据 xhr open POST url true xhr send encodeURIComp
  • 使用 jmap(1.5) 从 java 核心转储中提取信息

    长话短说 一些同事正在运行一个相当旧的设置 x86 64 中的 oc4j jdk1 5 6 其应用程序恰好是关键任务 他们最近尝试部署应用程序的新版本 但一旦他们这样做 java 进程就会抛出核心转储并死掉 问题是 核心转储似乎没问题 gd
  • MVC 与 Web 应用程序的实际模式是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 造成混乱的原因是网上流传着
  • div、px、dpi 之间的关系

    如果在布局 xml 文件中 我将大小设置为 例如 12dip mdpi 中总是 12px hdpi 中总是 18px 吗 那么 dip 对于 mdpi 是否总是正确 并且对于其他密度也会相应地缩放 这个问题完全由官方文档 div px 和
  • 如何在 D2 (Phobos) 中获得单次击键?

    是否有一种简单的跨平台方法可以使用 Phobos 在 D2 中进行单次击键 例如 按任意键继续 提示 或者 Brainfuck 解释器 我尝试过的所有方法都需要在传递输入之前按 Enter 键 例如 getchar 在 Windows 上使
  • 运行循环结束——自动释放池恢复

    据我了解 一旦自动释放池被释放 自动释放的对象就会被清理 现在 自动释放池将在运行循环结束时释放 我的问题是 如果在我的类中我没有创建自定义自动释放池并对该类中的某些对象调用自动释放方法 那么这些对象在什么时候会被恢复 运行循环结束 是否意