类型为 'UUID' 的值没有成员 'addToExerciseSets' - 尝试为具有核心数据的练习创建练习集的实例



我正在构建一个应用程序,通过从带有核心数据的预设列表中选择多个锻炼来创建锻炼。我得到以下错误:

"类型为"UUID"的值没有成员"addToExerciseSets"关于e.addToExerciseSet(newExerciseSet(

Exercise和ExerciseSet是独立的核心数据实体,它们之间存在关系。用户可以从列表中选择多个练习,然后我希望用户点击";添加";并分别为每个选定的练习创建一个ExerciseSet实例。

import SwiftUI
struct ExerciseSelectorView: View {
@Environment(.managedObjectContext) var viewContext
@Environment(.dismiss) var dismiss
@FetchRequest(sortDescriptors: []) var exercises: 
FetchedResults<Exercise>
@State var selectedItems = Set<UUID>()
var body: some View {
NavigationView {

List(selection: $selectedItems) {
ForEach(exercises) { exercise in
Text("(exercise.exercisename)")

}

}.navigationBarTitle(Text("Selected (selectedItems.count) rows"))

}
}
func createExerciseSet() {

for e in selectedItems {
let newExerciseSet = ExerciseSet(context: viewContext)
//newExerciseSet.exercise = e
newExerciseSet.dateCompleted = Date()
newExerciseSet.id = UUID()
e.addToExerciseSets(newExerciseSet) // This is where error occurs            
try? viewContext.save()
dismiss()
}
}
struct ExerciseSelectorView_Previews: PreviewProvider {
static var previews: some View {
ExerciseSelectorView()
}
}

这是练习班

extension Exercise {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Exercise> {
return NSFetchRequest<Exercise>(entityName: "Exercise")
}
@NSManaged public var exercisename: String
@NSManaged public var musclegroup: String
@NSManaged public var id: UUID?
@NSManaged public var exerciseSet: ExerciseSet?
}
extension Exercise : Identifiable {
}
extension Exercise {
@objc(addExerciseSetsObject:)
@NSManaged public func addToExerciseSets(_ value: ExerciseSet)
@objc(removeExerciseSetsObject:)
@NSManaged public func removeFromExerciseSets(_ value: ExerciseSet)
@objc(addExerciseSets:)
@NSManaged public func addToExerciseSets(_ values: NSSet)
@objc(removeExerciseSets:)
@NSManaged public func removeFromExerciseSets(_ values: NSSet)
}

任何帮助都将不胜感激!!谢谢

看起来您应该调用:

newExerciseSet.addToExerciseSets(e)

而不是

e.addToExerciseSets(newExerciseSet) // This is where error occurs

最新更新