Хорошо, поэтому благодаря явно неподключенному @Chris совету я его отсортировал!
Похоже, что это проблема Интерфейсного Разработчика: каким-то образом он сохранил первоначальное имя UILabel
, которое было автоматическим-создано, когда я добавил расширение Today в Xcode.В какой-то момент, после подключения IBOutlet
к ярлыку с надписью «Hello World», я переименовал его в нечто более уместное, но не отключил его, прежде чем вводить новое имя в TodayViewController
.
Консоль не вызывала никаких проблем и иногда, казалось, работала, но когда присутствовала строка с
try PropertyListDecoder().decode([Dose].self, from: dosesData as! Data)
, она перестала работать без каких-либосообщения консоли.
Я узнал об этом только после того, как изучил комментарий @Chris о as! Data
.Я переписал, чтобы сначала получить Данные:
if let userD = UserDefaults(suiteName: "com.btv.mySuite") {
if let dosesData = userD.object(forKey: "doses_key") {
if let unwrappedData = dosesData as? Data {
do {
doses = try PropertyListDecoder().decode([SplitDose].self, from: unwrappedData)
} catch {
doses.removeAll()
}
}
}
}
Как только это было скомпилировано (помните, оно все еще не выполняется - это просто сидит там в ожидании использования), консоль вызвала сообщение иприложение вылетело, показывая старое имя UILabel
как not key-compliant
.Повторное подключение UILabel
в IB исправило все, и я мог бы скомпилировать исходный код ....
Это, вероятно, заслуживает входа в Radar, но сейчас я не хочу тратить еще один день на воссоздание (если ввсе возможно) это проблема!