iOS:如何在排序的 NSMutableArray 中查找插入位置

2024-03-04

我有一个排序对象的 NSMutableArray,它们显示在 UITableView 中。

我想将一个新对象插入数组并更新表视图 - 这需要新插入对象的索引。

我找不到任何系统消息来告诉我在数组中正确的插入索引,我需要更新表视图。

我能找到的最好的是:

  • 添加新对象
  • sort
  • 使用数组的旧副本,找到新对象的位置(这需要搜索)

or

  • 编写我自己的插入位置搜索

当然,必须有一条消息来查找排序数组中的插入位置?或者我在这里遗漏了一些明显的东西?


您可以使用indexOfObject:inSortedRange:options:usingComparator:整个数组上的方法。此方法对您传递的范围执行二分搜索,并在您使用时为您提供插入点NSBinarySearchingInsertionIndex option:

NSUInteger insPoint = [myArray
    indexOfObject:toInsert
    inSortedRange:NSMakeRange(0, [myArray count])
    options:NSBinarySearchingInsertionIndex
    usingComparator:^(id lhs, id rhs) {
        return // return the result of comparing two objects
    }
];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS:如何在排序的 NSMutableArray 中查找插入位置 的相关文章

  • 删除具有estimatedItemSize 的项目时 UICollectionView 单元格大小会调整

    我有一个简单的项目 其中的故事板仅包含一个UICollectionViewController 使用 Xcode 7 1 1 为 iOS 9 1 构建 class ViewController UICollectionViewControl
  • 显示器连接或断开连接时的通知

    我正在开发一个 OS X 应用程序 该应用程序在所有连接的显示器的所有可用空间上显示自定义窗口 我可以通过调用 NSScreen Screens 获取可用显示对象的数组 我目前缺少的是一种判断用户是否将显示器连接到系统或从系统断开屏幕的方法
  • NSOperation 中委托的使用

    我正在尝试利用CLLocationManager in an NSOperation 作为其中的一部分 我需要能够startUpdatingLocation然后等到收到 CLLocation 后才完成操作 目前我已经完成了以下操作 但是委托
  • 如何按某些属性对对象列表进行排序

    我有简单的课 public class ActiveAlarm public long timeStarted public long timeEnded private String name private String descrip
  • AppDelegate 的变量用作全局变量不起作用

    我想使用我的 AppDelegate 来存储任何其他类都可以访问的对象 我已经像这样声明了这个 AppDelegate interface MyAppDelegate UIResponder
  • 为什么没有收到(UDP 多播)数据包?

    所以 我一直试图弄清楚为什么这不起作用 但我没有任何线索 我已经成功地从 iPhone 发送数据包并在 Mac 上接收它们 根据 tcpdump 我的 mac 正确发送数据包 此外 如果我在模拟器中运行它 它工作得很好 这让我相信这是一个网
  • CGContextSelectFont 等效项

    在 iOS 7 CGContext SelectFont 中已弃用 已弃用的消息说我必须使用 Core Text 但我不知道哪一个与这段代码完全相同 CGContextSelectFont context Helvetica kBarLab
  • Swift:无法为“[UIViewController]”类型的值添加下标?

    我试图弄清楚如何在 Xcode 7 iOS9 上的 Swift 中解决此问题 并且我也遇到此错误 无法为 UIViewController 类型的值添加下标 索引类型为 Int 任何建议表示赞赏 谢谢 My code func indexP
  • Xcode 4 调试器代码完成

    首先 很高兴他们尝试在 Xcode 4 中的 gdb 命令提示符上完成代码 但在当前状态下 它使得使用命令提示符来调查目标 c 对象几乎不可能 当我打字时 它自动将单词补全为我不想要的内容 并且如果不手动选择文本并将其删除 然后重新开始 则
  • 除非在后台线程中获取新的引用,否则存在潜在的引用计数问题

    我有一个second https stackoverflow com questions 28898966 prefer property accessor or kvc style for accessing core data prop
  • 无需 iPhone 6 Plus 即可预览 iOS 应用程序

    我已经在 Yosemite 中使用 iPhone 6 和 Quicktime 完成了 iOS 应用程序预览 视频 但我无法在 iTunes Connect 中为 iPhone 6 上传它 而且我没有 iPhone 6 设备 有没有办法在没有
  • 你如何在react-native中实现捏合缩放?

    我一直在研究 PanResponder 我当前的工作假设是 我将检测是否有两个触摸正在向外移动 如果是 则增加元素大小onPanResponderMove功能 这似乎是一种混乱的方法 有没有更顺畅的方法呢 如果您只需要简单的捏缩放功能 只需
  • 如何修复 ReactiveCocoa(带有 CocoaPods)的安装?

    这里是新手 尝试将 ReactiveCocoa 2 2 4 和 CocoaPods 安装到项目中 但在运行时遇到错误 我用过github 上的这个 podspec https github com CocoaPods Specs blob
  • UICollectionReusableView 方法未被调用

    我希望我的部分位于UICollectionView有一个带有图像的标题 我已按照以下步骤操作 在故事板中 分配了一个标题作为我的附件UICollectionView 给它一个标识符 创建了一个子类UICollectionReusableVi
  • ios 11 - UIBarButtonItem 内的 UIButton 导致自动布局错误

    我在将 UIButton 添加到 UIBarButtonItem 时遇到了一个已知问题 我尝试按照建议添加自动布局约束堆栈溢出 https stackoverflow com a 46336639 505603但我收到如下所述的错误 UIB
  • 断点条件错误

    我已经根据条件设置了断点 event name isEqualToString Some Name 这很好用 但是 当我尝试添加另一个带有条件的断点时 part name isEqualToString Some Value With A
  • 如何将unix时间戳转换为iphone中的nsdate [重复]

    这个问题在这里已经有答案了 可能的重复 从 Unix 时间戳创建 NSDate https stackoverflow com questions 5827240 create nsdate from unix timestamp 我有一个
  • 快速钥匙串更新只有在第二次尝试时才起作用

    您好 我在更新存储在钥匙串中的登录信息方面遇到了 iOS 钥匙串的一个非常奇怪的问题 因此 如果没有保存的凭据 则正确运行保存函数会保存登录信息 如果登录信息已存在并且用户更新了密码 则更新功能仅正确更新密码 但是 如果登录信息存在并且我尝
  • 进入后台时 Alamofire 请求卡住?

    我正在使用 Alamofire 调用 Web 服务 该服务需要相当长的时间才能加载 如果应用程序进入后台 当我返回应用程序时 我会被加载程序卡住 我想这是因为调用永远不会向我的完成处理程序返回任何内容 我该如何解决这个问题 您可以使用后台抓
  • iOS WKWebView 处理文件下载

    我面临以下问题 在 Web 界面中 文件下载是通过锚标记触发的 如下所示 a href bla blabla a 虽然 Safari 浏览器可以处理此请求并打开一个对话框来处理文件 但 WKWebView 将此视为普通链接并且不对其执行任何

随机推荐

  • Android 应用内结算。何时取消注册 ResponseHandler?

    我们一年前实现了应用内结算 按照文档中的示例代码没有出现任何问题 几周前 我们注意到用户抱怨没有收到他们的物品 在调试代码时我们发现下面这句话才是问题的根源 Called when this activity is no longer vi
  • 在 Visual Studio Code 中隐藏 .js.map 文件:文件嵌套

    我正在 Visual Studio 代码中开发一个打字稿项目 并且想隐藏 js map 甚至可能是 js 文件不会出现在文件资源管理器中 是否可以只显示 ts文件资源管理器中的文件 在您的设置 用户或工作区 中 有一个设置可以调整以隐藏您想
  • 枚举智能感知显示属性?

    我想做这个 enum Foo Display Item One ItemOne 这样智能感知就会像在属性中一样显示它而不是实际名称 我知道这是可能的 我以前见过 那么你可以提供 XML 文档 enum Foo
  • 将条形图和折线图与 pandas 结合起来[重复]

    这个问题在这里已经有答案了 我正在尝试将条形图和折线图结合起来 但我似乎无法弄清楚 我尝试了代码here https stackoverflow com questions 23482201 plot pandas dataframe as
  • 关闭父级而不关闭子级

    我有一个项目 其中弹出一个设置对话框 父级 当用户点击 继续 时 将打开一个主对话框 子级 在主对话框中 用户可以重新编辑设置对话框 父级 当用户单击 X 关闭设置对话框时 应用程序终止 我认为这是因为我们关闭了父级并处理了它的所有子级 是
  • 重新定义 Mathematica 中的非交换乘法

    Mathematicas NonCommutativeMultiply 不会简化诸如 a 0 0 a 0 a 1 1 a a or a a a 2 我想重新定义 去做这个 我使用 NCAlgebra 来执行此操作 但我需要 ReplaceR
  • PHP 生成一个预先定义长度的随机数

    我正在尝试使用 mt rand 创建一个函数来生成真正的随机数 因为 rand 还不够 问题是我需要预先定义数字的长度 假设我需要一个 10 位随机数 无论如何 我一直在搞乱 这就是我想出的 function randomNumber le
  • 如何将 Scalaz 的 traverse 和 traverseU 与 Either 结合使用

    是否可以使用 Scalaz traverse and traverseU with Either代替Option 对于以下代码 val list List 1 2 3 def f i Int Either Int String if i g
  • Ajax根据行获取表值

    我可以从行中获取第一个和最后一个值 但无法获取行中的第二个和第三个值 谁能帮我 这是我的代码 gt 网页 tr td one td td two td td three td td four td td td tr
  • java.lang.IllegalArgumentException:解析错误 - 日期格式错误?

    我使用变量 CURRENT DATE 将当前日期存储在 SQLite 数据库中 我发现使用的日期格式是yyyy mm dd在相同的 我想解析代码中的日期 但收到此错误 java lang IllegalArgumentException 解
  • C# 将字符转换为字节(十六进制表示)

    这似乎是一个简单的问题 但我无法弄清楚 我需要转换这个字符 lt 以字节 十六进制表示 表示 但如果我使用 byte b Convert ToByte lt i get 60 十进制表示 代替3c 60 0x3C 你已经有了正确的答案 但你
  • 如何合并两个ArrayList而不重复? [复制]

    这个问题在这里已经有答案了 我有两个数组列表 ArrayList one A B C D E ArrayList two B D F G 我想要我的最终 ArrayList 它将有All一的元素和只存在于二而不存在于一的元素 所以 Arra
  • 如何在 SQL 中比较两个表并删除重复行?

    我有两个表 如果第二个表中存在行的精确副本 则需要从第一个表中删除行 有谁有我如何在 MSSQL 服务器中执行此操作的示例吗 好吧 在某些时候你将不得不检查所有列 不妨加入 DELETE a FROM a first table INNER
  • StreamReader.ReadToEnd() 使用什么字符编码?

    使用什么字符编码StreamReader ReadToEnd 使用下面的 b 而不是 a 的原因是什么 如果使用 a 是否存在字符编码问题的风险 而不是 b 还有其他方法比 a 和 b 更好吗 a Dim strWebResponse As
  • 为 Android 应用游戏制作重启按钮

    我正在开发一个 Android 应用程序 当我运行主要活动时 该应用程序会按我想要的方式运行 但在你在游戏中死亡后会停止 我想让你在游戏中死亡后出现一个重新启动按钮 到目前为止 我已经制作了一个带有按钮和主要活动背景的新布局 我在源文件夹中
  • 如何仅在 Option 为 None 时有条件地执行代码?

    如果函数返回可选值 我不想采取行动 我如何测试None仅案例 这段代码可以工作 但看起来很糟糕 let v ffunc match v None gt callproc Some x gt 在C中 我可以写 int x ffunc if x
  • 将 less 字符串传递给 less.js 并接收 css?

    less js中有一个函数可以传递一串less代码并返回css代码吗 我希望创建一个实时的 less 编辑环境 这样用户可以编辑 less 字符串 我可以重新编译它并显示 css 我看到有一个php解决方案 http leafo net l
  • 如何检查PCNTL模块是否存在

    我编写简单的需求检查脚本 它检查安装的所有必需的 PHP 模块 我需要检查 pcntl 是否已安装 但该模块只能在 cgi 环境中访问 对于 Web 查询不可见 extension loaded pcntl 和 function exist
  • 在 Grails 中获取特定数据源的 SessionFactory

    因此 如果我想在支持多个数据源之前使用 Grails 正在使用的会话进行直接 SQL 查询 我可以这样做 def conn new Sql sessionFactory currentSession connection 现在的问题是我有多
  • iOS:如何在排序的 NSMutableArray 中查找插入位置

    我有一个排序对象的 NSMutableArray 它们显示在 UITableView 中 我想将一个新对象插入数组并更新表视图 这需要新插入对象的索引 我找不到任何系统消息来告诉我在数组中正确的插入索引 我需要更新表视图 我能找到的最好的是