为什么Cocoa里没有队列?

2024-04-06

我最近发现 Cocoa 中没有内置队列(在本例中为 Touch)。为什么不?队列是计算机编程中最基本的数据结构之一。

我看到有人建议使用NSMutableArray,但这对于弹出/出列来说效率极低,因为它需要删除索引 0 处的对象。这会将所有元素向下移动(朝向现在为空的条目),因此每次删除操作需要 O(n) 时间。我是否遗漏了什么,或者是否没有理由不将队列添加到 Cocoa 中?


我看到有人建议使用NSMutableArray,但这对于弹出/出列来说效率极低,因为它需要删除索引 0 处的对象。这会将所有元素向下移动(朝向现在为空的条目),因此每次删除操作需要 O(n) 时间。

这是不正确的。NSMutableArray非常有效地处理头插入,并且可用于许多不同的数据结构,包括队列和堆栈。

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

为什么Cocoa里没有队列? 的相关文章

  • Cocoa Key Value Bindings:Controller Key的各个选项的解释是什么?

    当我使用 Interface Builder 将控件绑定到 NSArrayController 时 绑定检查器中的 Controller Key 字段下有多种选项 我理解什么是 arrangedObjects 我半理解什么是 选择 但我很想
  • iPhone SDK 3.0 和 symbolicatecrash 相处不好?

    更新 我已经重新安装了 Snow Leopard 全新安装 完全清除了我现有的 Leopard 安装 同样的问题仍然存在 我已经尝试了多个版本的 symbolicatecrash 来解析崩溃报告中的符号 从 Apple 提供的版本 到 Al
  • 将 NSData 转换为 JSON

    我有一个NSData对象 我需要将其转换为NSDictionary object NSData data 现在我需要将其转换为NSDictionary 我如何以编程方式执行此操作 注意 我保存后NSData to the NSDiction
  • NSPersistentStoreCoordinator 线程安全吗?

    我正在开发一个使用 Core Data 的 iPhone 应用程序 该应用程序调用 Web 服务 解析生成的 XML 文件 然后在我的应用程序中创建或修改 Core Data 对象 我已经处理了 Web 服务调用并异步解析 但我一直将解析后
  • 获取实体中某个值的最大值

    我正在尝试获取核心数据中实体中属性的最大值 苹果有一个很好的例子here http developer apple com library mac documentation Cocoa Conceptual CoreData Articl
  • 为什么 NSToolbarItem 自动被禁用?

    我的 Mac 幻灯片应用程序工具栏中的按钮有点问题 我希望在没有活动幻灯片时禁用这些按钮 在有活动幻灯片时启用这些按钮 为了实现这一点 我设置了按钮isEnabled财产给false在开始时 我已经尝试过 Interface Builder
  • Xcode 5 部署目标仅限于 iOS 7

    What should be done for me to have the deployment target lower that 7 0 in my project preferences Now any new project I
  • 不使用 ARC 时替换 __weak

    我有这行代码 weak NSBlockOperation weakOperation operation 这是触发此编译器错误 weak attribute cannot be specified on automatic variable
  • 我的子视图中的 UIButton 不起作用

    我正在创建一个名为 InfoAboutBlockView 的自定义 UIView 我将其添加到我的 ViewController 中并且添加正确 但是当我按下该自定义 UIView 内的按钮时 它不会触发 我正在创建一个 xib 文件 在其
  • Java:数组和向量

    我习惯于使用 PHP 但最近我一直在使用 Java 并且试图解决这个问题让我很头疼 我想用 Java 保存这个表示 Array col name 1 gt Array 1 gt col value 1 2 gt col value 2 n
  • 创建类似于邮件应用程序菜单的 iPhone 弹出菜单

    当您想要回复消息时 我想创建一个类似于邮件应用程序中的弹出菜单 我在多个应用程序中看到过这一点 所以我不确定框架中是否内置了某些内容或一些示例代码 在 Swift 中创建操作表 代码已使用 Swift 5 进行测试 从 iOS 8 开始 U
  • 线程安全的异步字节队列

    我有一个回调方法 只要有新数据可用 就会调用该方法 public delegate void DataCallback byte buffer int offset int count 我想将其包装在一个实现与此类似的接口的类中 publi
  • 释放 Core Foundation 对象引用

    我是否需要释放 Core Foundation 对象来清理内存 如果是这样 怎么办 例如 在代码中 ABAddressBookRef addressBook ABAddressBookCreate CFArrayRef peopleArra
  • 最近打开的应用程序[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有什么方法可以获取最近打开的应用程序 例如 4 个 的列表吗 如果是这样 怎么办 可可麦克 看看LaunchServices LSSh
  • ios 用户如何取消 Facebook 登录?

    当用户到达此屏幕时 无法取消 我能做些什么 为了首先获得这个视图 我正在运行 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys vid l
  • 这个函数(for循环)空间复杂度是O(1)还是O(n)?

    public void check 10 for string i list Integer a hashtable get i if a gt 10 hashtable remove i 这是 O 1 还是 O n 我猜测 O n 但不是
  • 如何将 UILabel 的值绑定到实例变量?

    我是 mac objective c 的新手 我的问题是 我想知道是否可以将 UILabel 文本绑定到变量 而不必在值更改时手动设置文本 例如 在 Mac OS 上 当我打开新的 Finder 窗口并删除文件时 任务栏中的全局可用空间就会
  • 在树结构的 Big-O 表示法中:为什么有些来源引用 O(logN),有些来源引用 O(h)?

    在研究遍历二叉搜索树的任何算法的复杂性时 我看到两种不同的方式来表达同一件事 版本 1 最坏情况下的遍历算法对树的每个高度进行一次比较 因此复杂度是O h 版本 2 最坏情况下的遍历算法对树的每个高度进行一次比较 因此复杂度是O logN
  • 如何按字母顺序对 UITableView 分区进行排序?

    我有一个包含 3 个类别的分段 UITableView 我正在使用这段代码 NSArray arrayOne NSArray arrayWithObjects one two three four nil NSDictionary dict
  • 无法将项目添加到 NSMutableArray ivar

    我的目标是将字符串添加到数组中 并在我调用的方法中执行此操作 在这个方法中 我在数组中得到一个空值 但不知道为什么 我在课程开始时有这样的内容 NSMutableArray listOfEvents 以及我在每个事件上调用的方法 void

随机推荐