私は、次のエンティティとの関係関係を介してエンティティ属性を設定するにはどうすればよいですか?
は、私はそれが理にかなっている場合は、そのルーチン名の関係についてはnil結果を持っている運動を設定できるようにしたいですか?ルーチン実体が形成されたときに後でそれをルーチン名として設定することができる。
私の質問は、この種の属性をどのように設定するかです。私は、次のコードをしようとしていますが、それは致命的なクラッシュが発生します。
userExercise.usersroutine?.name = nil
私は運動を取り、nameプロパティとの関係を追跡し、nilに設定することをされて私のロジック?私のロジック上の任意の訂正と明確化
EDITため
ありがとう:私の既存の運動や日常保存機能を追加しました
func createExercise() {
guard let managedObjectContext = managedObjectContext else { return }
if let userExercise = userExercise {
userExercise.name = userExerciseName.text
userExercise.sets = Int64(userSetsCount)
userExercise.reps = Int64(userRepsCount)
userExercise.weight = Double(self.userExerciseWeight.text!)!
userExercise.id = UUID().uuidString
userExercise.routine = nil
}
do {
try managedObjectContext.save()
} catch {
fatalError("Failure to save context: \(error)")
}
}
ルーチンの作成:
func createRoutine() {
guard let managedObjectContext = managedObjectContext else { return }
let userRoutine = UserRoutine(context: managedObjectContext)
userRoutine.name = workoutNameTextfield.text
do {
try managedObjectContext.save()
} catch {
fatalError("Failure to save context: \(error)")
}
}
が要求を現在の取得:
fileprivate lazy var fetchedResultsController: NSFetchedResultsController<UserExercise> = {
let fetchRequest: NSFetchRequest<UserExercise> = UserExercise.fetchRequest()
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "id", ascending: true)]
let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.persistentContainer.viewContext, sectionNameKeyPath: nil, cacheName: nil)
fetchedResultsController.delegate = self
return fetchedResultsController
をごusersroutine値自体はnilであると、あなたがそれの上に名前を設定しようとしているためです。意味がありますか?まず、ルーチンに値を代入し、必要に応じてnameをnilに設定します。 –
私は理解しています。正しい方法は何でしょうか?私が設定する名前があるまで、単純にuserExercise.usersroutine = nilを使用しますか? – infernouk
ルーチンとエクササイズの間にどのような関係を持たせたいのかを説明して、あなたの問題をよりよく理解し、実行可能な解決策を提供することができますか? –