2017-08-01 3 views
4

私は、CDModel.xcdatamodeld内に1つの属性 'name'を持つ単純なエンティティ 'CDWorkout'を作成しました。 AppDelegateのコンテナの名前も 'CDModel'です。 'CDWorkout'のClassgenはCategory/Extensionです。ここでCDWorkoutクラスのコードです:createWorkout機能がcontainer.viewContextとしてcontext引数で別のViewControllerから呼び出され'クラス' className 'のNSManagedObjectに有効なNSEntityDescriptionが必要です。'エラー

class CDWorkout: NSManagedObject { 

    class func createWorkout(workoutInfo : Workout, in context: NSManagedObjectContext) -> CDWorkout{ 
     let workout = CDWorkout(context: context) 
     workout.name = "anyName" 
     return workout 
    } 
} 

は、それがすぐにメッセージでクラッシュ:キャッチされない例外により「NSInvalidArgumentException」に

アプリを終了します、理由: '' Workout_Generator.CDWorkout 'クラスのNSManagedObjectに有効なNSEntityDescriptionが必要です。'

私は何を忘れましたか?

答えて

9

問題は、クラスモジュール:CDWorkout Entityの現在の製品モジュールを確認しなかったことでした。

0

あなたは、あなたがやったとして、今あなたが名前を設定することができます

let workout = NSEntityDescription.insertNewObjectForEntityForName("CDWorkout", 
    inManagedObjectContext: context) as! CDWorkout 

にそれを使用することができます前に、NSManagedObject新しいを作成する必要があります:workout.name = "any_name"

あなたはCoreDataについての詳細はCoreData Documentationを参照することができます

関連する問題