如何在 obj-C 的 C 函数中向自己发送消息?

2024-01-31

我有一个 C 函数(音频队列服务中的回调函数),我想向自己发送消息。怎么做? 如果我输入[self message],则会出现错误:

Use of undeclared identifier 'self'

您不会在实时回调中执行 objc 消息,例如音频。原因是 objc 消息传递不是恒定时间,并且可能会锁定,从而导致错过最后期限,从而导致音频丢失。静态或动态(virtual) C++ 调用和 C 函数调用当然是恒定时间的,并且适合实时上下文。

如果不是实时/音频回调,那么一种选择是通过self作为用户信息或上下文参数:

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

如何在 obj-C 的 C 函数中向自己发送消息? 的相关文章

随机推荐

  • 右单撇号与撇号?

    右单引号 U 2019 与 撇号 U 0027 这两个角色有什么区别 我遇到了这个问题 我使用 CAtlString 从资源文件加载字符串 在某些 Windows 安装上 当尝试加载包含 U 2019 的字符串时 LoadString 失败
  • 兼容类型与严格别名规则

    将一种类型转换为另一种类型是 C 中的常见策略 这依赖于 C 结构体的布局具有一定的保证这一事实 GLib等库依靠它来实现类似继承的面向对象 基本上 struct Base int x int y struct Derived struct
  • 在 WordPress 中使用 jQuery UI 对话框

    我知道至少还有另外一篇文章处理这个问题 但答案从未明确给出 我正在 head php 文档中的 WP 子主题中工作 我在头部添加了这个
  • mgm 包中的estimateNetwork 函数存在问题

    我正在尝试使用 mgm 包运行混合图形模型 到目前为止 这是我的代码 我在最后一个命令周围加了星号 这是我似乎无法运行的命令 有人可以建议吗 library haven gt flordiss lt read sav C Users sch
  • 将不应提交的 Gradle 配置(即凭据)放在哪里?

    我正在尝试将 Gradle 构建的工件部署到 Maven 存储库 并且我需要为此指定凭据 目前这工作正常 uploadArchives repositories mavenDeployer repository url http nexus
  • 如何中断 R 中的 RPostgresql 查询

    在 RPostgresql 中中断长时间运行的查询的最佳方法是什么 例如 我想查看表格的前 10 行 并打算输入 dbGetQuery con select from big table limit 10 但有时我会忽略 限制 10 然后我
  • Rails、Ruby 1.9.3p0 和 mysql gem

    我正在运行 CentOS6 并从源代码安装了 Ruby 以及 Rails 和其他一些人员 ruby v ruby 1 9 3p0 2011 10 30 revision 33570 x86 64 linux rails v Rails 3
  • 什么时候应该使用封装? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在完成 Sun Oracle 的踪迹 http docs oracle com javase tutorial java TOC html
  • 哈希映射内存开销

    我正在研究哈希图的内部结构 其中我遇到了以下详细信息 实现是一个 HashMap Entry 对象数组 每个 HashMap Entry 包含 int KeyHash 下一个对象 对象键 对象值 默认容量为 16 个条目 空大小为 128
  • 如何检测用户是否离开了我的应用程序?

    我正在开发一个 Android 应用程序 我想检测用户何时通过单击 后退 按钮或 主页 按钮退出我的应用程序 另外 像这样的事件onInit 在我的场景中很有用 因为我只想拥有MyIn t行动首先开始 onDestroy 直到其他应用程序需
  • 选择正确的 IOS XML 解析器 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 iPhone 有上百万种不同的 XML 解析器 我有一个中等大小的 XML 文件 其中包含大量重复标签
  • Web API 可空必需属性需要 DataMember 属性

    我在 Web API Post 操作上收到以下虚拟机 public class ViewModel public string Name get set Required public int Street get set 当我发帖时 出现
  • 在 Rails 3 中执行任务时显示加载屏幕

    如果我的 创建 操作需要一段时间才能加载 由于执行 API 调用然后进行计算 向用户显示 加载屏幕 的最佳方式是什么而这个任务是在后台执行的 编写一些 AJAX 魔法 在激活时显示加载图像 并在 AJAX 调用完成时隐藏它 如果你不想使用
  • axios有能力检测重定向吗?

    The Fetch API响应接口 https developer mozilla org en US docs Web API Response has a 只读标志 https developer mozilla org en US d
  • 同时录制和播放音频

    任何人都可以帮助我在 iPhone 上同时录制和播放音频 您可以使用 AVFoundation 框架 它有AVAudioPlayer来播放音频文件和AVAudioRecorder来录制 您必须记住 录音机只能使用麦克风进行录音 因此 同时播
  • Python中正态分布的曲线拟合

    我想计算正态分布数据的百分位数 所以我首先将数据拟合到正态分布 下面是示例 from scipy stats import norm import numpy as np from scipy optimize import curve f
  • Django:无法从另一个应用程序导入模型

    我希望就我遇到的这个问题寻求一些帮助 我仍在学习 Django 和 Python 并遇到了这个我无法找到答案的特定问题 我创建了一个名为 新闻 的新应用程序 并为该应用程序设置了模型 使用管理界面我创建了一些数据 从我的 Pages 应用程
  • Go viper .yaml 值环境变量覆盖

    我正在努力拥有application yamlgo 应用程序中的文件包含 RMQ HOST 我想用环境变量覆盖的值 In application yaml我有 rmq test host RMQ HOST port RMQ PORT 在我的
  • 更改用户登录名后认证错误

    我们有一位最近更改了姓名的用户 假设旧用户名是 old name 新用户名是 new name 在 AD 中编辑详细信息并使用新用户名注销 登录后 我们的 ASP NET 应用程序显示旧名称 纯 ASP NET 无 MVC 使用 Windo
  • 如何在 obj-C 的 C 函数中向自己发送消息?

    我有一个 C 函数 音频队列服务中的回调函数 我想向自己发送消息 怎么做 如果我输入 self message 则会出现错误 Use of undeclared identifier self 您不会在实时回调中执行 objc 消息 例如音