Я получаю эту ошибку и несколько часов пытался выяснить причину:
[_ NSCoreDataTaggedObjectID FormulaName]: нераспознанный селектор отправлен в экземпляр 0xd0000000000c0008
Благодаря этой статье Я знаю, что _NSCoreDataTaggedObjectID
- это имя класса объекта, для которого я вызываю метод (но это не один из моих классов), а formulaName
- это метод вызывается или, я думаю, в моем случае это свойство .
У меня есть UITableViewController
, который отображает LiftEvents на основе фильтра lift
, который пользователь выбирает:
extension LiftEvent {
@NSManaged var date: Date
@NSManaged var repetitions: NSNumber
@NSManaged var uuid: String
@NSManaged var weightLifted: NSNumber
@NSManaged var weightUnit: String
@NSManaged var formula: Formula
@NSManaged var lift: Lift
}
У каждого LiftEvent есть формула:
extension Formula {
@NSManaged var formulaName: String
@NSManaged var uuid: String
@NSManaged var liftEvent: NSSet?
}
Поскольку каждая ячейка создается с помощью liftEvent, я вызываю liftEvent.calculateOneRepMax (), для которого требуется liftEvent.formula.formulaName
:
func calculateOneRepMax() -> Measurement<UnitMass> {
var oneRepMax: Measurement<UnitMass>?
let unit = liftWeight.unit
let formulaName = formula.formulaName <-- Exception Breakpoint stops here
switch formulaName {
case "Baechle":
let result = liftWeight * ( 1 + (0.033 * Double(truncating: repetitions)))
oneRepMax = Measurement(value: result.value, unit: unit)
// the rest of the cases...
И в точке прерывания исключения есть формула, но я получаю нераспознанную ошибку селектора при попытке po self.formula.formulaName
:
(lldb) po self.formula
0xd0000000000c000a <x-coredata://CEE4B747-4119-4372-B5A8-368D0AF9FB69/Formula/p3>
(lldb) po self.formula.formulaName
2018-06-24 09: 40: 36.174149-0700 Максимум 1 повторение [74577: 5375031] - [_ NSCoreDataTaggedObjectID FormulaName]: нераспознанный селектор, отправленный экземпляру 0xd0000000000c000a
ошибка: выполнение было прервано, причина: точка останова 1.1.
Процесс был возвращен в состояние до вычисления выражения.
Если я выбираю разные lift
фильтры , UIViewController фактически работает большую часть времени :
но в других случаях я выберу тот же lift
фильтр, который работал минуту назад, но теперь вызывает сбой.
Я пытался отлаживать это часами. Я установил свою собственную точку останова повсюду и перешагивал код бесчисленное количество раз. Кто-нибудь есть какие-либо предложения о том, как еще я могу попробовать отладить это?