在 CoreData 的 NSOrderedSet 中查找对象。索引(无障碍元素:)

Posted

技术标签:

【中文标题】在 CoreData 的 NSOrderedSet 中查找对象。索引(无障碍元素:)【英文标题】:Find object in NSOrderedSet in CoreData. index(ofAccessibilityElement :) 【发布时间】:2016-10-14 20:41:28 【问题描述】:

我有一个有序到多的关系,Xcode 8 生成了一个 NSOrderedSet 类型的属性,其中包含一组用于插入和删除元素的辅助函数。

现在我正在尝试查找一个对象,Apple 文档表明以下函数可用于 NSOrderedSet:

func index(of object: Any) -> Int  

但是,当我想使用此函数时,编译器和自动完成功能希望我改用以下函数:

func index(ofAccessibilityElement element: Any) -> Int  

这似乎没有找到任何东西。

有人可以帮我理解发生了什么吗?

【问题讨论】:

根据文档,它是func index(of: Any),而不是of object: Any 这里引用了函数:link 我只是想知道我是否是唯一遇到此错误的人,或者这是一个错误,还是我做错了什么。 这真的很奇怪。这与此处显示的内容相矛盾:developer.apple.com/reference/foundation/nsorderedset 【参考方案1】:

自动补全可以而且经常是错误的。它可能很方便,但它不是正确的参考。

我不知道编译器想要使用该方法是什么意思,因为这不是您在有序集中查找对象所需要的。正确的方法是index(of:),如

var myset = NSMutableOrderedSet(array: [1, 2, 3])

myset.index(of:2)

【讨论】:

谢谢汤姆,我觉得我有点累了,我在我的实体而不是我的属性上调用 index(of:)...你的回答帮助我审查了我的问题。

以上是关于在 CoreData 的 NSOrderedSet 中查找对象。索引(无障碍元素:)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中从 FetchedResults (CoreData) 中获取 NSOrderedSet

在 CoreData 中使用 NSOrderedSet 重新排序 UITableView

Coredata 和 NSOrderedSet - 如何定义集合的顺序?

在 CoreData 的 NSOrderedSet 中查找对象。索引(无障碍元素:)

CoreData NSOrderedSet - 修复?

使用 SwiftUI ForEach 从 NSOrderedSet 获取字符串值