2017-03-12 1 views
0

CoreDataから関係を介してオブジェクトのコレクションを取得するとき、swiftは私が期待していた配列ではなくNSSetを提供しています。セットを配列に変換しますか?

セットを配列に変換する方法はありますか?

コード:

var updateExercise : UserExercise? 

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

注意からキャスト

ある 'NSSet?'関連性のない型 '[UserExerciseSet]' には常に

先を失敗したVCは、VARを持っている:あなたは配列を必要とするときそして、

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

、:var userExerciseSets : [UserExerciseSet]?

答えて

4

次のようなあなたのNSManagedObjectモデルを定義する必要があります集合をとるArrayのコンストラクタを使うことができます。

実際
let exercises = Array(userExercise.exercises) 
+1

が、それが理由でセットだことを覚えておいてください - 同じ 'Set'が要素を返さないかもしれないとの*順序の保証はありません*、そして'アレイ() 'への2つの呼び出しが同じように命じました... – Grimxn

+1

UIに表示するために使用されている場合は、これに加えて明示的なソートも必要です。良いキャッチ。 – jimj

関連する問題