问题标签 [nsset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4771 浏览

ios - 从 NSSet 中检索 NSManagedObject

我有两个实体,它们之间存在一对多关系。持有“许多”的实体具有预期的 NSSet 属性。我不确定如何访问 NSSet 中的特定元素。NSSet 包含具有多个属性的对象,其中之一是 currentWeek。我想访问我的 NSSet 中具有特定 currentWeek 的对象。

我知道我可以做一个 FetchRequest 来找到它,但我认为使用 NSSet 有一种更直接的方法。

0 投票
3 回答
180 浏览

objective-c - 将对象添加到容器后将其设置为零?

我以为NSArray//NSDictionaryNSSet它们的可变子类只是添加了指向对象的指针,而不是它自己的对象。

因此,如果在将我的“简单”对象添加到容器后将其设置为 nil,为什么引用 nil 不在数组(容器)中?

这是代码:

这是输出:

0 投票
2 回答
350 浏览

iphone - iOS Collections 和一个奇怪的算法

所以我想知道这是个好主意还是坏主意。

我正在构建一个简单的 iOS 游戏(使用标准 UI 控件),它允许用户创建角色和怪物“模板”,然后构建引用角色和怪物并与它们交互的遭遇。

当用户创建一个遭遇时,有一个简单的模态视图允许他们命名遭遇,然后推送到另一个 VC 以选择参与的角色,返回,推送到第二个视图控制器以选择涉及的怪物模板,以及至于有多少怪物将参与其中。

最后,目标是让怪物模板用于构建“真实”的怪物,这些怪物将在遭遇中被引用。

对于角色选择部分,我使用了一个 NSSet 来存储选择的角色实体并在视图控制器之间传递它。(这样我避免在实际保存新的遭遇之前不得不非常混乱的托管对象上下文)

对于怪物,因为我需要存储一个数量以及实体,所以它有点复杂。

所以我最初的想法是将它们存储在 NSDictionaries 的 NSArray 中,其中包含 Monster Template 和 Quantity。

这种方法的问题是我必须遍历 NSArray 并打开每个单独的字典来检查是否存在特定的怪物模板。

在这种规模的应用程序中,它可能并不重要,但它似乎效率低下。

所以我认为最好只维护两个 NSMutable 数组

这样我可以简单地打电话

当我需要检查其中是否已经存在某些东西时,并且当我为特定怪物添加或减去数量时,我可以简单地更新两个数组。

然后,当 Encounter 被保存时,我可以简单地遍历 Array 一次以创建所需数量的个人怪物实例,并将它们与 Encounter 相关联。

我担心这种方法虽然简单有效,但如果代码中出现小错误,可能会导致并发问题。有没有更好的方法来解决这个问题?

0 投票
1 回答
213 浏览

cocoa - 通过 Cocoa Bindings 获取 Core Data 中关系的最后一个元素的正确方法

我有一个托管对象 X,它与 [1:N) Y 对象的列表有关系。(X 和 Y 对象使用 Core Data 存储)

我想找到正确(更方便)的方法来获取最新插入的 Y 对象。此 Y 对象的“名称”属性可能通过 Cocoa Bindings 显示在图形中。

我知道所有的 Y 都被插入到一个 NSSet 中,所以没有定义的顺序。但是,每个 Y 都有一个“时间戳”属性,所以当我说“最新插入的 Y 对象”时,我实际上是指“具有最新时间戳的 Y”。

任何帮助将不胜感激:我搜索了所有文档,但没有找到任何可以帮助我的东西。

0 投票
2 回答
11158 浏览

iphone - 请问NSSet的objectsPassingTest函数的例子?

我要疯了。出于某种原因,我找不到一个完整的示例来说明如何使用 objectsPassingTest: NSSet (cocoa) 的函数。在有人将我指向有关块的页面之前,我已经看过那些。给出的示例仅显示了如何声明函数,而不是操作它的块,当我用自己的代码尝试他们的示例时,它不起作用。我只想看几个有关如何使用该功能的工作示例,然后我就可以自己解决了。

0 投票
2 回答
6849 浏览

iphone - NSSet 是否使用哈希来定义唯一性?

我一直在假设 NSSet 使用 hash 来查找潜在的匹配项,然后在每个匹配项上调用 isEqual 来检查真正的冲突,但我意识到我找不到任何证据来支持这一点。

我提出它的原因是 NSSet 中存在“member:”方法。为什么 member: 的文档特意指定 isEqual: 用于在 NSSet 中没有其他内容时用于查找您的对象?containsObject: 是否只使用哈希或其他什么?

任何人都可以确认这种行为吗?理想情况下,有关它的参考文档?

0 投票
2 回答
449 浏览

iphone - 调用 NSSet 的 setByAddingX 方法时,哪个 set 的对象赢得了平局?

我提出这个是因为与 isEquals: 比较相同的对象不一定相同。一些(许多)对象仅比较某些属性以确定相等性。

这使得以下 NSSet 方法的确切行为很重要:

文档没有指定当接收器和参数包含等效对象时会发生什么。生成的 NSSet 将包含来自接收者的对象,还是来自“其他”参数的对象?

请注意,在 NSMutableSet 中,它确实指定了其添加方法的行为——如果集合中已经存在“相等”对象,则不会添加对象。

0 投票
2 回答
5004 浏览

objective-c - NSSet 的 containsObject 和快速枚举哪个更好?

我需要确定一个对象是否包含在 Core Data to-many 关系(这是一个 NSSet)中,并且我正在尝试确定两种解决方案中的哪一种更好:

解决方案1)

解决方案2)

解决方案 1 更简洁,但 NSSet Class Ref 表示快速枚举的性能优于 NSSet 的 objectEnumerator。它是否也比 containsObject 执行得更好?

0 投票
0 回答
689 浏览

nskeyedarchiver - 我在使用循环引用取消归档 NSMutableSet 时遇到问题

我在我的 iPhone (iOS 4.3) 应用程序中取消归档 NSMutableSet 对象时遇到问题。

我有一个 UIImageView 的子视图,其中包含 NSMutableSet 类型的 ivar。我在标题中定义了 NSMutableSet(并在实现中合成了它):

该集合包含对 MyView 类型的零个或多个对象的引用。由于 group 是 MyView 的一个属性,因此对非 nil 组成员(MyView 对象)的引用是循环的。

我像这样编码这个视图:

NSLog 显示正在归档的健康组对象。但是当我取消编码时,我得到一个 NSException:

第一次看到这个错误时,我收到了一条相当详细的错误消息:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“ * -[NSCFSet count]: method sent to an uninitialized mutable set object”

但是,当我重现该问题时,我得到的信息要少得多:在抛出“NSException”实例后调用终止

使用以下命令创建存档:

并用这个打开:

感谢您对此的任何帮助。

- 富有的

0 投票
1 回答
2718 浏览

ios - 使用 NSSet 关系填充 cellForRow

我浏览了很多帖子,但仍然不确定如何解决这个问题。希望有人可以提供帮助。

它一直有效,直到到达最后一个数据源方法 cellForRow。那时我可以为每个部分获得正确的 NSSet,但无序。对关系属性的内省如何对行起作用?

在 cellForRow 中使用字符串文字我确实在每个部分中获得了正确的行数,但显然与那里的托管对象没有连接。

如何填充 NSSet 关系中的行?赞赏所有见解

类别<<--->>Person
cName ---------- pName

关系
人 ---------- 类别