Я хочу сохранить данные в UserDefault из неизвестного источника. В документах говорится, что словарь должен быть допустимым объектом списка свойств .
Если словарь не является допустимым списком, приложение вылетает.
class A {}
let invalidDict = [ "Key" : A() ]
UserDefaults.standard.set(invalidDict, forKey: "Key")
// error: Execution was interrupted, reason: signal SIGABRT
Я хочу просто зарегистрировать проблему, а не сбой. Окружение блоком do catch не работает.
Есть ли способ предотвратить cra sh или проверить произвольный словарь, допустимый формат plist?