我可以将dispatch_once_t谓词声明为成员变量而不是静态吗?

2023-11-27

我只想每个实例运行一次代码块。

我可以将dispatch_once_t谓词声明为成员变量而不是静态变量吗?

From GCD 参考,我不清楚。

谓词必须指向存储在全局或静态中的变量 范围。使用自动或动态谓词的结果 存储未定义。

我知道我可以使用dispatch_semaphore_t和布尔标志来做同样的事情。我只是好奇。


dispatch_once_t不能是实例变量。

实施dispatch_once()要求dispatch_once_t为零,并且从来没有非零。以前的非零情况需要额外的内存屏障才能正常工作,但是dispatch_once()出于性能原因忽略了这些障碍。

实例变量被初始化为零,但它们的内存可能先前存储了另一个值。这使他们不安全dispatch_once() use.

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

我可以将dispatch_once_t谓词声明为成员变量而不是静态吗? 的相关文章

  • 增加 iPhone 的推送通知徽章

    是否可以在收到通知时增加徽章值 或者我应该将计数作为有效负载发送吗 如果我每次都将徽章值发送为 1 那么如果应用程序未打开 我如何增加应用程序图标中的徽章值 我已经使用了这段代码 但不起作用 void application UIAppli
  • iOS通过AVAssetWriter反转音频

    我正在尝试使用 AVAsset 和 AVAssetWriter 在 iOS 中反转音频 以下代码可以正常工作 但输出文件比输入文件短 例如 输入文件的持续时间为 1 59 但输出文件的持续时间为 1 50 且音频内容相同 void reve
  • 自动布局+基于总行数的动态表高度约束

    首先 这与动态单元格的高度无关 所以不要把它搞混了 我有一个场景 我创建了三张卡 详细信息卡 显示位置的具体详细信息 图表卡 根据选择显示不同的图表 更多详细信息卡 卡显示更多详细信息 以下是上述卡片的屏幕 查看以上屏幕的层次结构 Cont
  • 了解 malloc_history 转储

    如果您曾经问 过如何调试 Objective C 中的释放 分配问题 您将遇到这些可以帮助跟踪问题的环境设置 NSZombieEnabled 释放后保留对象 以便您可以获得指针等 MallocStackLogging 保留对象历史记录以供以
  • 有没有办法以编程方式选择 Segue 锚点?

    假设我有一个 Storyboard 其中包含一个包含按钮的视图 当用户按下此按钮时 会出现一个弹出窗口 因此 我需要使用 Xcode 将 Segue 拖动到按钮来设置锚点 然后执行使用标识符执行Segue 所以 我的问题是 有没有办法以编程
  • 核心数据二进制数据允许外部存储崩溃

    我在 iOS 12 0 1 上发生崩溃 日志如下 ImageIO CFDataGetBytes data 0x28539b2f0 size 154262 offset 8 count 8 dst 0x16dbf86f0 External d
  • 将 NSDictionary 保存到文件有任何限制吗

    我想用下面的方法来保存NSDictionary void writeDicToFile NSDictionary dic fileName NSString fileName NSString filePath NSTemporaryDir
  • 快速从 appDelegate 中 popToRootViewController

    我试图从应用程序委托弹出到导航堆栈的根视图控制器 并且在将 obj c 中的内容转换为 swift 时遇到一些问题 obj c 中的工作原理 UINavigationController navigationController UINav
  • 如何使用 UISlider 以及如何将滑块设置为特定值?

    我是第一次使用 UIslider 首先我想知道如果值的范围是 0 到 10 如何获取滑块位置的值 其次 我希望我的滑块设置为 5 个不同的值 如 1 2 3 4 5 slider should not set between the lab
  • 播放声音无延迟 iOS

    我找不到如何以低延迟播放真实声音的方法 我尝试使用 AVFoundation 音频播放器 巨大的延迟大约 500 毫秒 所以我尝试创建系统声音 如果运气不好 延迟大约为 200 毫秒 虽然不多 但对我来说没有用 我最多需要 50 毫秒 确保
  • Sprite Kit - 确定轻弹精灵的滑动手势矢量

    我有一个游戏 圆形物体从屏幕底部射出 我希望能够滑动它们以将它们朝我滑动的方向轻弹 我的问题是 我不知道如何计算滑动的矢量 方向 以便使圆形物体以适当的速度向正确的方向轻拂 我使用的静态矢量 5 5 需要通过滑动速度和滑动方向来计算 另外
  • 允许用户从 UILabel 选择文本进行复制[重复]

    这个问题在这里已经有答案了 我有一个 UILabel 但如何允许用户选择其文本的一部分 我不希望用户能够编辑文本 也不希望标签 文本字段具有边框 这是不可能的UILabel 你应该使用UITextView为了那个原因 只需使用禁用编辑即可t
  • 使用 AFNetworking 的 setImageWithURL 时如何配置缓存

    我在用着setImageWithURL在我的应用程序中下载一些图像 是否可以 指定此图像必须在缓存中保存多长时间 例如 1 周 指定缓存的最大总大小有多大 例如 200 兆 查看图像缓存中有什么 清除缓存 文档 http engineeri
  • 替代已弃用的 NSNibLoading 方法(loadNibFile:、loadNibNamed: 等)?

    我发现 NSBundle 中的 NSNibLoading 方法 NSBundle loadNibFile externalNameTable withZone NSBundle loadNibNamed owner NSBundle loa
  • 跟踪所有 ObjC 方法调用?

    有时 当查看别人的大型 Objective C 程序时 很难知道从哪里开始 在这种情况下 我认为记录对每个非 Apple 方法的每次调用会很有帮助 有没有办法做到这一点 基本上 在某个中心位置进行一项更改 并记录调用的每个方法 最好仅限于非
  • iPhone,使用 isKindOfClass 是否被认为是不好的做法?

    例如 如果有一个 处理所有 类型的方法 if obj isKindOfClass class1 else if obj isKindOfClass class2 etc 这是不好的做法吗 是否有更简洁的替代方案或更好的方法来构建代码 在运行
  • 如何从 NSString 中删除十六进制字符

    我面临一个与字符串中的某些十六进制值相关的问题 我需要从字符串中删除十六进制字符 The problem is when i print object it prints as BLANK line And in debug mode it
  • iPhone SDK - 在后台线程中运行重复进程

    我有一个iPhone我想在其中每隔一段时间在后台执行一个方法的应用程序1第二 所以在我的主线程中 我有以下代码UIViewController viewDidLoad NSTimer timerWithTimeInterval 1 0 ta
  • NSMenuItem、自定义视图和 mouseUp 的奇怪问题:

    我在这里遇到了一个非常非常奇怪的 NSMenu 问题 我使用的大约一半的 NSMenuItems 通过 NSMenuItem 上的 setView 方法具有自定义视图 在此自定义视图中 我实现了 mouseUp 来捕获用户单击菜单项的时间
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p

随机推荐

  • 将 ItemsControl 与可拖动项目组合 - Element.parent 始终为 null

    我将带有 Canvas 的 ItemsControl 作为 ItemsPanelTemplate 绑定到 ObservableCollection 我想使用 DraggableExtender 使项目可拖动 如发布的在 WPF 中拖动图像
  • Vue.js 在 ajax 请求期间禁用组件

    我正在寻找以下问题的简单解决方案 我有一个 Vue 组件按钮 可以使用它发出 ajax 请求 我想在请求待处理时禁用此按钮 以防止多个请求 听起来您希望您的操作在开始时设置 提交 一个标志 然后在结束时清除它 在 Vuex 中尝试这样的事情
  • 如何通过“import”语句确定Python中导入了哪个文件?

    如何通过 import 语句确定Python中导入了哪个文件 我想确定我正在加载本地修改的 py 文件的正确版本 基本上相当于 POSIX 环境中的 which 使用以下命令启动 python v参数以启用调试输出 当您导入模块时 Pyth
  • 根据滚动位置触发视频自动播放

    我正在编写一个使用scrollorama js 脚本中的擦除动画的脚本 我希望能够实现视频在滚动深度的某些标记处自动播放 即 当一个视频页面擦除了另一个页面并且现在完全可见时 我已经弄清楚如何测量滚动深度 我成功地将其记录在我的控制台中 我
  • 团结| mesh.colors 不会为我的自定义网格对象着色

    我在 Unity 中构建了一个自定义金字塔 如下所示 Mesh mesh GetComponent
  • 如何在 Javascript 中打印出一行

    我想测试这个函数 getFileExtension input files 0 name 的返回值 我有一条注释指向该行 我的问题是如何在 javascript 中打印出该值 谢谢
  • Django 多租户

    铊 dr 有没有办法覆盖默认行为reverse 在我的 django 项目中 我有很多网址 例如 url r w company include company urls namespace company 它允许诸如以下的网址 compa
  • 将列表框项目的命中区域拉伸到列表框的全宽? ListBox 样式通过主题隐式设置

    我已经四处寻找对此的答案 但潜在的重复更关心的是演示而不是交互 我有一个基本的列表框 每个项目的内容都是一个简单的字符串 ListBox 本身被拉伸以填充其网格容器 但每个 ListBoxItem 的 hitarea 并不反映 ListBo
  • Gradle - 获取依赖项的最新发行版本

    最简单的方法是什么Gradle下列 检索 junit 依赖项并获取其最新的 发布 版本 管理 Maven 和 Ivy 存储库对我来说有点新鲜 我尝试了以下步骤 结果是Could not resolve dependency error Wr
  • 将“rgb”图例添加到 R 传单热图中

    我使用以下方法制作了一些交互式热图leaflet 特别是添加热图 命令来自传单 extras包 和shiny 创建了所需的地图后 我想为其添加图例 我感兴趣的是 rgb 图例 基于由 推导出来的密度值添加热图 来自纯长 纬度坐标 我需要的是
  • 使用 d3.js 将工具提示添加到饼图

    我正在踏上学习使用 d3 js 可视化数据的旅程 到目前为止 我发现 Scott Murray 的 交互式数据可视化 非常有帮助 我正在遵循本书第 11 章中的一些示例代码 并且想知道如何将工具提示添加到饼图中 本书已经使用条形图描述了此过
  • Ant 文件集标记中的两个星号意味着什么?

  • 当 Google Analytics 由 Google 跟踪代码管理器管理时,如何跟踪自定义事件?

    我最终不得不在我的网站上使用 Google 标签管理器 因此 Google Analytics 现在是其中的一部分 一切都设置正确并且工作正常 但是 我曾经能够非常轻松地跟踪我网站上的自定义事件 使用 ga 函数 ga send event
  • 未调用 ASP.NET MVC 的 HttpModule

    我正在尝试在 ASP NET MVC 2 Preview 1 应用程序中实现每个请求会话模式 并且我已经实现了 IHttpModule 来帮助我执行此操作 public class SessionModule IHttpModule pub
  • 如何在 VS2008 中禁用 Cider(WPF Gui 编辑器)?

    在开发 wpf 应用程序时 我从不使用图形编辑器 又名苹果酒 只有 xaml 编辑器 由于 苹果酒 在加载时需要相当多的资源 我想知道是否有办法完全禁用它 这可能会加快加载 xaml 文件的速度 我听说这是可能的 但由于谷歌没有返回我正在寻
  • 访问向量中元素的地址时获取临时地址

    我仅在访问布尔向量中元素的地址时收到警告 对于其他数据类型 如 int 的向量 我没有收到任何警告 eg vector
  • Java:PhantomReference、ReferenceQueue 和 Finalize

    我有一个 PR 一个 PR 指向的对象 O 以及一个为 PR 设置的 RQ 我有一个线程不断轮询 RQ 并且在它在 RQ 中找到的第一个引用时 该线程打印它找到它的时间 然后退出 一切工作正常 但是一旦 O 完成了 无论多么微不足道 线程就
  • 如何使用phpmyadmin编写存储过程以及如何通过php使用它?

    我希望能够使用创建存储过程phpMyAdmin然后通过php使用它 但我不知道该怎么办 据我所知 我发现我们无法通过以下方式管理存储过程phpMyAdmin 还有什么其他工具可以管理存储过程 我什至不确定通过 PHP 使用存储过程是否是更好
  • 枚举是否创建其参数的副本?

    如果我在迭代非常大的图形集群列表时使用枚举 我想确保我不会在内存中不必要地创建该列表的任何副本 我一直在尝试确认它不会创建任何副本 但想确定一下 for i cluster in enumerate c code that does stu
  • 我可以将dispatch_once_t谓词声明为成员变量而不是静态吗?

    我只想每个实例运行一次代码块 我可以将dispatch once t谓词声明为成员变量而不是静态变量吗 From GCD 参考 我不清楚 谓词必须指向存储在全局或静态中的变量 范围 使用自动或动态谓词的结果 存储未定义 我知道我可以使用di