Я пытаюсь загрузить сущности в свой контроллер представления, используя базовые данные, но при попытке сделать это я получаю сообщение об ошибке «нераспознанный селектор отправлен в экземпляр». У меня есть две сущности: Рутина и Упражнение, когда Рутина является владельцем Упражнения.
В моем контроллере представления я пытаюсь вернуть список упражнений, связанных с выбранной подпрограммой.
let exercises = routine.exercises.allObjects as! [Exercise]
Однако эта строка выдает мне ошибку. Я довольно новичок в использовании CoreData, поэтому я немного озадачен тем, откуда появилась эта ошибка. Мои два класса:
@objc(Exercise)
public class Exercise: NSManagedObject {
}
extension Exercise {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Exercise> {
return NSFetchRequest<Exercise>(entityName: "Exercise")
}
@NSManaged public var name: String?
@NSManaged public var reps: Int16
@NSManaged public var sets: Int16
@NSManaged public var owner: Routine
}
@objc(Routine)
public class Routine: NSManagedObject {
}
extension Routine {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Routine> {
return NSFetchRequest<Routine>(entityName: "Routine")
}
@NSManaged public var name: String?
@NSManaged public var exercises: NSSet
}
Я пытался просмотреть разные вопросы о переполнении стека, но не смог найти ничего, что решило бы ошибку, спасибо.
EDIT
вывод на печать (рутинные упражнения)
<Exercise: 0x600001591e00> (entity: Exercise; id: 0xe28fa998e4a16a04 <x-coredata://024220B5-49D9-4D66-B7CB-ADE11BEB9F85/Exercise/p12> ; data: { name = "Incline Bench Press"; owner = "0xe28fa998e4b16a06 <x-coredata://024220B5-49D9-4D66-B7CB-ADE11BEB9F85/Routine/p8>"; reps = 0; sets = 4; })
пока сообщение об ошибке:
2019-04-17 13:23:09.069636+0100 MyFitnessApp[6564:25418954] -[Exercise allObjects]: unrecognized selector sent to instance 0x600001591e00
2019-04-17 13:23:09.075932+0100 MyFitnessApp[6564:25418954] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Exercise allObjects]: unrecognized selector sent to instance 0x600001591e00'