2017-03-12 70 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