将Set转换为Array?

jwa*_*s91 2 core-data nsset ios swift

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

有没有办法可以将集合转换为数组?

码:

var updateExercise : UserExercise?

destinationViewController?.userExerciseSets = self.updateExercise?.exercisesets as? [UserExerciseSet]
Run Code Online (Sandbox Code Playgroud)

警告是

从'NSSet'演员?到不相关的类型'[UserExerciseSet]'总是失败

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

jim*_*imj 9

您应该如下定义NSManagedObject模型:

class UserExercise: NSManagedObject {
   @NSManaged var exercises: Set<Exercise>!
}
Run Code Online (Sandbox Code Playgroud)

然后,当你需要一个数组时,你可以简单地使用Array的构造函数来获取一个数组.

let exercises = Array(userExercise.exercises)
Run Code Online (Sandbox Code Playgroud)

  • 事实上,但请记住,它是一个集合是有原因的 - *不能保证顺序*,并且使用相同的“Set”两次调用“Array()”可能不会返回以相同方式排序的元素... (2认同)