问题标签 [nsorderedset]
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.
ios - 将 NSMutableSet 和 NSMutableOrderedSet 桥接在一起的协议
在Swift 3中,我希望能够创建一个协议,允许我添加元素并通过 using 进行迭代for element in
。该协议应该同时适用于NSMutableSet
和NSMutableOrderedSet
(因为它们不是从同一个类继承的)。
我知道有充分的理由为什么NSMutableSet
不NSMutableOrderedSet
从同一个类继承,这里和这里都有解释。
但我想创建一个协议,它只使用NSMutableSet
(and NSMutableOrderedSet
) 中所有方法的一小部分。
我已经add
开始工作了,像这样:
但是,我真的很想能够通过使用来遍历元素:
我试图使protocol MutableSet
符合Sequence
协议,像这样,但它不起作用:
是否可以使我的协议符合Sequence
?我该怎么做?我尝试了typealias
和等associatedtype
的各种组合。我也尝试了这个答案,它对我不起作用。Element
Iterator
编辑 2:在编辑 1 中回答我自己的问题
我开始var count: Int { get }
使用这个解决方案,但不确定它是否是最好的......如果不必在 and 的扩展中实现 也很好,var elements: [Any] { get }
但我想这是不可避免的吗?NSMutableSet
NSMutableOrderedSet
编辑1:跟进问题
使用@rob-napier 的优秀答案和type erasure
技术我已经扩展了protocol MutableSet
具有count
和能力的能力,但是我只能使用丑陋的(named )subscript
来做到这一点,而不是. 这就是我正在使用的:func
getCount
var
我怎样才能让它在协议中使用,var count: Int { get }
而var elements: [Any]
不是在函数中使用?
core-data - 在CoreData的NSOrderedSet中的特定位置插入一个对象?
在 CoreData 中设置“To Many”关系并勾选“Ordered”框将您的属性定义为 NSOrderedSet。
有没有一种有效的方法可以在特定位置插入对象或上下移动对象?
或者我是否需要使用来自 NSOrderedSet 的数据创建一个 NSMutabledOrderedSet,插入或移动我的对象,然后将其转换回 NSOrderedSet?
还是我应该使用标准的 NSSet 并自己管理“位置”属性?
ios - 在 CoreData 的 NSOrderedSet 中查找对象。索引(无障碍元素:)
我有一个有序到多的关系,Xcode 8 生成了一个 NSOrderedSet 类型的属性,其中包含一堆用于插入和删除元素的辅助函数。
现在我试图找到一个对象,Apple 文档表明以下函数可用于 NSOrderedSet:
但是,当我想使用此函数时,编译器和自动完成功能希望我改用以下函数:
这似乎没有找到任何东西。
有人可以帮我理解发生了什么吗?
xcode - 将 CoreData 中的 NSOrderedSet 与 UITableView 一起使用
我正在尝试在 CoreData 中使用 NSOrderSet 来填充我的表格视图。我已经能够读取 NSOrderedSet 的计数,但似乎无法访问构成 NSOrderedSet 的实体的各个属性。
我将它用于 numberOrRows
currentStatement 代表 CoreData 中的一个实体,而 History 是另一个与 Statement 实体有 toMany 关系的实体。
我正在尝试在 CellForRowAt 方法中访问这样的 History > date 属性。
swift - 从 Core Data 中检索 NSOrderedSet 并将其转换为实体 managedObjectSubclasss
我正在制作一个健身应用程序来学习核心数据,我发现我需要让用户将每次执行的锻炼存储为一个 WorkoutLog 项目,并且在那里,应该有一系列代表该锻炼表现的锻炼日志(它包含每个升降机以及对实际锻炼设计的参考)。
问题是,过了一会儿我意识到我需要订购这些,这样下次我想向用户展示他们的锻炼时,锻炼的顺序应该是相同的。
所以我在那里检查了图像右上角的“ordered”,现在我的代码急需更新。我已经尝试尽可能多地阅读有关使用NSOrderedSet
以及如何从核心数据中获取它们然后操作它们的信息,但我并没有真正发现对我有多大用处。(我在objective-c方面没有经验)
例如我的代码曾经是:
我收到错误消息:.../DatabaseFacade.swift:84:77: Cast from 'NSOrderedSet?' 到不相关的类型 'Set' 总是失败
所以我学到的关于集合和核心数据的知识似乎不再适用。
我远非编程专家,但我非常渴望学习如何访问loggedExercises
实例。
TLDR;有没有办法将 NSOrderedSet 转换为我可以使用的东西?我们通常如何从核心数据中使用 NSManagedSets?我们将它们转换为数组还是 MutableSet?我非常感谢一两个关于如何开始检索和使用这些有序集的示例!
谢谢
arrays - 数组到 NSOrderedSet 将列表的大小更改为 1
我有一个包含 2 个元素的数组,当我尝试将其转换为 NSOrderedSet 时,它只给了我一个元素的大小
这条线给我 2
这条线只给我 1 个元素
为什么转换为 NSOrderedSet 会改变数组的大小?
感谢您的帮助
core-data - Swift4 Core Data如何按日期插入NSOrderedSet?
我有一个核心数据模型,其中一条记录to many
与照片实体有关系。该关系被标记为ordered
在数据模型中。
下面的代码在最后一个索引处添加了一条新记录。我希望记录按日期排序 - 这意味着我必须在某个特定索引处插入对象
有没有办法让核心数据执行块或某些操作来确定新记录的正确插入索引?还是我必须自己计算?
我担心订单,因为删除照片会迫使需要重新计算所有照片的日期范围。