2017-03-12 39 views
0

当通过关系从CoreData中检索一个对象集合时,swift为我提供了一个NSSet而不是我所期望的数组。将设置转换为数组?

有没有一种方法可以将设置转换为数组?

代码: '?NSSet中'

var updateExercise : UserExercise? 

destinationViewController?.userExerciseSets = self.updateExercise?.exercisesets as? [UserExerciseSet] 

的注意事项是从

演员无关型 '[UserExerciseSet]' 总是失败

目的地VC有VAR:var userExerciseSets : [UserExerciseSet]?

回答

4

你应该定义你的NSManagedObject模型,例如:

class UserExercise: NSManagedObject { 
    @NSManaged var exercises: Set<Exercise>! 
} 

然后,当你需要一个数组,你可以简单地使用数组的构造函数。

let exercises = Array(userExercise.exercises) 
+1

的确,但请记住,这是有原因的一组 - *没有订单*的保证,并两次调用'阵列()'用相同的'Set'可能不会返回元素下令以同样的方式... – Grimxn

+1

正确的是,如果用于在UI中显示,还应该有一个明确的排序。接得好。 – jimj