将集合转换为数组?
Posted
技术标签:
【中文标题】将集合转换为数组?【英文标题】:Converting Set to Array? 【发布时间】:2017-03-12 17:04:54 【问题描述】:当通过关系从 CoreData 检索对象集合时,swift 给了我一个 NSSet 而不是我预期的数组。
有没有办法可以
代码:
var updateExercise : UserExercise?
destinationViewController?.userExerciseSets = self.updateExercise?.exercisesets as? [UserExerciseSet]
注意事项
从 'NSSet?' 转换?到不相关的类型“[UserExerciseSet]”总是失败
目标 VC 具有 var : var userExerciseSets : [UserExerciseSet]?
【问题讨论】:
【参考方案1】:你应该这样定义你的 NSManagedObject 模型:
class UserExercise: NSManagedObject
@NSManaged var exercises: Set<Exercise>!
然后当你需要一个数组时,你可以简单地使用数组的构造函数,它接受一个集合。
let exercises = Array(userExercise.exercises)
【讨论】:
确实如此,但请记住,这是一个集合是有原因的 - 无法保证顺序,并且使用相同的Set
对 Array()
的两次调用可能不会返回元素的排序方式相同...
正确,如果它用于在 UI 中显示,除此之外还应该有一个明确的排序。很好的收获。以上是关于将集合转换为数组?的主要内容,如果未能解决你的问题,请参考以下文章