将集合转换为数组?

Converting Set to Array?

当通过关系从 CoreData 检索对象集合时,swift 给我一个 NSSet 而不是我预期的数组。

有什么方法可以将集合转换成数组吗?

代码:

var updateExercise : UserExercise?

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

注意事项是

Cast from 'NSSet?' to unrelated type '[UserExerciseSet]' always fails

目标 VC 具有变量:var userExerciseSets : [UserExerciseSet]?

您应该这样定义您的 NSManagedObject 模型:

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

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

let exercises = Array(userExercise.exercises)