【问题标题】: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]?

【问题讨论】:

    标签: ios swift core-data nsset


    【解决方案1】:

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

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

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

    let exercises = Array(userExercise.exercises)
    

    【讨论】:

    • 确实如此,但请记住,这是一个集合是有原因的 - 无法保证顺序,并且使用相同的 SetArray() 的两次调用可能不会返回元素的排序方式相同...
    • 正确,如果它用于在 UI 中显示,除此之外还应该有一个明确的排序。很好的收获。
    猜你喜欢
    • 2016-05-12
    • 1970-01-01
    • 2019-08-10
    • 2013-01-15
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多