Objective-C:如何为异步方法正确使用内存管理

2023-12-22

我需要调用一个启动一些异步代码的方法

MyClass* myClass = [[MyClass alloc] init];
[myClass startAsynchronousCode];

现在我不能简单地释放它,因为这会导致错误,因为代码仍在运行:

[myClass release];  // causes an error

处理记忆的最佳方法是什么?


您可以让 -[MyClass startAsynchronousCode] 调用回调:

typedef void(*DoneCallback)(void *);

-(void) startAsynchronousCode {
  // Lots of stuff
  if (finishedCallback) {
    finishedCallback(self);
  }
}

然后实例化一个 MyClass,如下所示:

MyClass *myClass = [[MyClass alloc] initWith: myCallback];

myCallback 可能如下所示:

void myCallback(void *userInfo) {
  MyClass *thing = (MyClass *)userInfo;
  // Do stuff
  [thing release];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Objective-C:如何为异步方法正确使用内存管理 的相关文章

  • IOS 无法从 Google Drive 获取文件

    这是我的代码 GTLQueryDrive query GTLQueryDrive queryForFilesList query q NSString stringWithFormat IN parents root self driveS
  • iOS 上的内存交换和虚拟内存 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Does iOS支持像Linux一样自动运行的内存交换和虚拟内存吗 iOS有虚拟内存 但没有后备存储 因此没有交换内存的调入 调出 A
  • 在 CUDA 中的设备内存上分配 2D 数组

    如何在 Cuda 中的设备内存中分配和传输 往返于主机 2D 数组 我找到了解决这个问题的方法 我不必展平阵列 内置的cudaMallocPitch 函数完成了这项工作 我可以使用以下命令将阵列传输到设备或从设备传输阵列cudaMemcpy
  • 如何在qt中进行异步文件io?

    我想知道如何在qt中实现异步文件io 这在普通的 qt 中是否可以实现 或者有人需要使用另一个库 例如 libuv 来实现这样的事情 我正在查看 QDataStream 但即使它是一个 流 它也不是非阻塞的 我想一种解决方案是制作一个在内部
  • iOS 5 Twitter 框架和completionHandler 块 - “在此块中强烈捕获‘自我’可能会导致保留周期”

    我对编程和 Objective C 非常陌生 我正在尝试找出我的代码出了什么问题 我已经阅读了一些有关块的内容 但我不知道到目前为止我所阅读的内容与我的代码有何相关 我的代码使用 iOS 5 Twitter 框架 我使用了 Apple 提供
  • 使用回退异步加载 jquery 核心

    通过标头中的性能优化和非阻塞脚本 我一直在尝试异步加载 jquery 本身 我遇到了一个jQuery 加载器 http www yterium net jQl an asynchronous jQuery Loader脚本 那个async加
  • 如何从 iOS 本机共享功能中删除某些选项? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一款 iOS 游戏 想知道如何删除 iOS 在自动共享时提供的一些本机选项 例如 分配给联系人 和 打印 我对此做了很多研究 我
  • 为什么需要 EndExecuteNonQuery()?

    文档here http msdn microsoft com en us library ca56w9se aspx指出 开发人员必须致电 EndExecuteNonQuery 方法完成 操作 我无法找到一个充分的理由来解释为什么会这样 或
  • 如何获取 UIImage 的大小(以 KB 为单位)?

    有没有办法从 UIImage 获取以 KB 为单位的文件大小 而不从 didFinishPickingMediaWithInfo 获取该图像 所呈现的图像来自相册 我尝试了以下代码 但这给出了以下结果 图像大小 KB 0 000000 vo
  • 我应该在哪里保存想要长期保留的数据和文件,以及如何防止 iCloud 备份它们

    我有任意类型的文件 包括核心数据存储库 我需要保留这些文件 并且不要让 iOS 删除它们 通常 我不希望 iCloud 备份这些文件 我应该把它们保存在哪里 iOS5 0 及更早版本 5 0 1 和 5 1 及更高版本中保存文件的本地更改主
  • 编程环境中的虚拟地址空间

    我对虚拟地址空间的含义感到困惑 在 32 位机器中 进程可以寻址 2 32 个内存位置 这是否意味着每个进程的虚拟地址空间是 2 32 4GB 以下是进程虚拟地址空间的快照 这个可以增长到4GB吗 这样的系统中进程数量有限制吗 这个可以增长
  • iPhone Objective-C 以编程方式将范围按钮添加到 UISearchBar

    我目前这段代码用于创建 UISearchBar 改编自之前的 stackoverflow 示例 UISearchBar searchBar UISearchBar alloc initWithFrame CGRectZero searchB
  • 具有 3D 旋转功能的 CAEmitterCell

    我正在尝试使用 CAEmitterLayer 和 CAEmitterCell 重现从顶部落下的小纸片效果 到目前为止 我得到了它的 2D 动画 但是我很难让每个单元格在掉落时旋转 如何对每个粒子应用随机旋转 我尝试过 3D Transfor
  • R:如何在不耗尽内存的情况下重新绑定两个巨大的数据帧

    我有两个数据框df1 and df2每个都有大约 1000 万行和 4 列 我使用 RODBC sqlQuery 将它们读入 R 没有任何问题 但是当我尝试rbind他们 我收到了最可怕的 R 错误消息 cannot allocate me
  • iOS 框架问题:类在两者中均实现

    我正在开发一个使用第三方框架类的iOS框架项目 所以我在下面添加了第三方框架链接的框架和库部分 当我在 iOS 应用程序项目中添加自定义框架时 每个类都会收到此警告 objc 3139 类 class name 在两者中均实现 privat
  • 以编程方式在 UIView 中添加 UIScrollView

    我有一个问题如何在UIView中添加UIScrollView 以便UIScrollView能够正常工作 UIScrollView scroll UIScrollView alloc initWithFrame CGRectMake 0 0
  • [NSDictionary getObjects:andKeys:] 的示例

    我找不到该方法的工作示例 NSDictionary getObjects andKeys 唯一的example http www mail archive com cocoa dev lists apple com msg24959 htm
  • NSAttributedString - 获取字体属性

    我需要获取有关我的属性字符串的信息 但不知道如何获取 我得到这本词典 2013 11 04 18 06 10 628 App 1895 60b NSColor UIDeviceWhiteColorSpace 0 3 1 NSFont
  • 在 Objective-C 中创建二维数组

    在 Objective C 中声明二维数组最简单的方法是什么 我正在从网站的文本文件中读取数字矩阵 并希望获取数据并将其放入 3x3 矩阵中 将 URL 读入字符串后 我创建一个 NSArray 并使用 ComponentsSeparate
  • 如何使用核心动画来动画 NSTextField 的背景颜色?

    我正在尝试使用核心动画来突出显示无效的文本字段 my field animator setBackgroundColor NSColor yellowColor 更新字段背景颜色 但不会以动画方式显示更改 正确更新字段位置等属性 我假设这是

随机推荐

  • ZMQ套接字连接超时

    我正在使用 ZMQ cppzmq 的 C 绑定 并且尝试使用以下命令设置 TCP 套接字的连接超时 setsockopt 这样的方法 int connectTimeout 1000 socket setsockopt ZMQ CONNECT
  • 替换对shared_ptr中对象的所有引用

    是否可以替换shared ptr的多个实例引用的对象 可能我不太清楚 我举个例子 shared ptr a new Derived1 auto b a auto c b This function replaces the object w
  • TypeError 对象不可迭代

    当尝试循环 Django 模板中的变量时 出现以下错误 有问题的变量是我的 DetailView 子类中指定的模型的相关对象 类型错误位于 en applicants 50771459778 Householdmember 对象不可迭代 这
  • 如何在 PHP 中通过 cURL 发送 XML 和其他 post 参数

    我使用下面的代码将 XML 发送到我的 REST API xml string data 包含正确的 XML 并且它很好地传递到 mypi php set POST variables url http www server cu mypi
  • 解释器关闭时线程化导入

    蟒蛇的threading文档 http docs python org dev library threading html importing in threaded code states 所有导入尝试必须在解释器启动之前完成 自行关闭
  • 线程最佳实践

    我从事的许多项目的线程实现都很差 而我就是必须追踪这些问题的傻瓜 是否有公认的最佳方法来处理线程 我的代码总是等待一个永远不会触发的事件 我有点像设计模式之类的想法 假设 NET 类似的事情也适用于其他平台 嗯 有lots需要考虑的事情 我
  • 如何检测脚本中的Python版本2或3?

    我编写了一些脚本 它们要么仅在 Python 2 x 版本上运行 要么仅在 Python 3 x 版本上运行 如果脚本是从合适的 Python 版本开始的 我如何检测脚本内部 有没有类似这样的命令 major minor getPython
  • 为什么 MPI_Barrier 会导致 C++ 中的分段错误

    我已将程序简化为以下示例 include
  • 在 Drupal 8 中的特定节点类型上使用预处理钩子

    我已经成功使用预处理页面挂钩 例如 function mytheme preprocess page node front variables and function mytheme preprocess page node 12 var
  • 如何在 foreachBatch 中使用临时表?

    我们正在构建一个流平台 其中批量使用 SQL 至关重要 val query streamingDataSet writeStream option checkpointLocation checkPointLocation foreachB
  • 从具有复合主键的另一个表插入或更新表

    我正在寻找正确的语法和方法来直接从 SQL 执行以下操作 插入或更新 如果数据已存在 TableMain从包含的数据TableA两者具有相同的复合主键 两个表都定义为 CREATE TABLE TableA TID0 int NOT NUL
  • 如何使用 Moya Swift 使用多部分请求上传图像?

    我使用的是 Moya 10 0 1 当我尝试将图像上传到服务器时遇到问题 我确实遵循了分段上传示例 https github com Moya Moya blob master docs Examples MultipartUpload m
  • 条件运算符无法解析重载的成员函数指针

    我在处理 C 中重载成员函数的指针时遇到了一个小问题 以下代码可以正常编译 class Foo public float X const void X const float x float Y const void Y const flo
  • -webkit-filter:其他浏览器的阴影

    我有一个使用以下 css 应用的投影效果 webkit filter drop shadow 0 1px 10px rgba 113 158 206 0 8 有谁知道其他浏览器的等效项是什么 请注意我无法使用box shadow 0 1px
  • Android - 如何发送崩溃报告?

    似乎从 Android 2 2 开始 有一个用于发送崩溃报告的新功能 如链接中所述 http www androidcentral com new android app crash report tool already and runn
  • 阅读《Java 并发实践》以获取更多并发示例?

    SO 的许多人建议通过阅读来深入了解 Java 并发性Java 并发实践 JCIP https rads stackoverflow com amzn click com 0321349601 有时道格 李 Doug Lea 1999 年出
  • 预授权在控制器上不起作用

    我试图在方法级别定义访问规则 但它不起作用 安全配置 Configuration EnableWebSecurity EnableGlobalMethodSecurity prePostEnabled true public class S
  • 仅客户端与 Meteor 的反应?

    我在服务器上发布了一个集合 并在客户端上自动订阅 我想在会话上设置 选定 项目 并更新模板以仅显示选定项目 但似乎这只能通过往返服务器来完成 这是完全没有必要的 Common var Missions new Meteor Collecti
  • 有没有办法在 PHP 中检查 cookie 是否为 httponly

    有没有办法检查 cookie 是否是 httponly 在 php 中 我认为这是不可能的 因为此信息不包含在浏览器发送的原始标头中 事实上 将这样的标志发送回服务器是没有意义的 因为它们对服务器来说没有意义 只会浪费带宽
  • Objective-C:如何为异步方法正确使用内存管理

    我需要调用一个启动一些异步代码的方法 MyClass myClass MyClass alloc init myClass startAsynchronousCode 现在我不能简单地释放它 因为这会导致错误 因为代码仍在运行 myClas