Я пытаюсь, чтобы мое приложение открывало другой контроллер представления в зависимости от того, является ли массив пустым в пользовательском NSUserDefaults. По сути, если пользователь ранее сохранил данные в приложении, приложение откроется там, где они смогут выбрать данные. В противном случае приложение откроется на экране приветствия.
Однако, когда массив пуст, я вижу цвет фона, который я установил для экрана приветствия, но не текст или кнопку, которые я выложил в раскадровке. Когда массив не пустой и страница данных должна открыться, мое приложение вылетает с ошибкой SIGABRT. Я проверил все выходы для рассматриваемого контроллера представления, и ничто, кажется, не отключено. Кроме того, когда я закомментирую код в делегате приложения и установлю контроллер представления данных в качестве начального начального представления, приложение будет работать нормально.
Полная ошибка: «Поток 1: сигнал SIGABRT», и он помечен в строке класса AppDelegate.
Код, который я использовал в делегате приложения, приведен ниже:
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
var accounts = loadAccounts()!
if accounts.isEmpty {
let welcomeController = WelcomeViewController()
self.window!.rootViewController = welcomeController
} else {
let tableController = AccountTableViewController()
self.window!.rootViewController = tableController
}
return true
}
func loadAccounts() -> [Account]? {
return NSKeyedUnarchiver.unarchiveObject(withFile: Account.ArchiveURL.path) as? [Account]
}