【发布时间】:2015-11-22 15:33:32
【问题描述】:
我有一个正在 Xcode 7.2 中制作的应用程序。我有一个带有一个按钮的主菜单,该按钮有一个转到设置视图控制器的 segue。设置视图控制器具有以下代码,每次我到达该视图控制器时,它都会因 EXC_BREAKPOINT 错误而崩溃。有趣的是,这只发生在我运行 iOS 7 的 iPhone 4 上。它不会在运行 iOS 9 的 iOS 模拟器 iPhone 6 中崩溃。
不管怎样,这里是代码。
//
// SettingsController.swift
// Arbor Hills iOS
//
// Created by Andrew on 11/22/15.
// Copyright © 2015 Arbor Hills Vet. All rights reserved.
//
import UIKit
class SettingsController: UITableViewController {
@IBOutlet weak var username: UITextField!
@IBOutlet weak var password: UITextField!
@IBOutlet weak var notifications: UISwitch!
override func viewDidLoad(){
super.viewDidLoad()
let defaults = NSUserDefaults.standardUserDefaults()
let dusername = defaults.valueForKey("username")!
let dpassword = defaults.valueForKey("password")!
let dnotifications = defaults.valueForKey("notifications")!
username!.text = String(dusername)
password!.text = String(dpassword)
if(dnotifications as! Bool == true){
notifications.setOn(true, animated: true)
}else{
notifications.setOn(false, animated:true)
}
}
@IBAction func saveUsername(sender: AnyObject) {
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(username.text!, forKey: "username")
}
@IBAction func savePassword(sender: AnyObject) {
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(password.text!, forKey: "password")
}
@IBAction func notificationsModified(sender: AnyObject) {
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(notifications.on, forKey: "notifications")
}
}
【问题讨论】:
-
在 viewDidLoad 中设置断点,从 iphone4s ios 7 开始在此中逐行调试,让我们知道它在哪里崩溃。
-
@RajanMaheshwari 在这一行之后崩溃了:let dusername = defaults.valueForKey("username")!
-
表示用户名密钥数据不存在。在那里进行零检查