Application error with EXC_BREAKPOINT error

I have an application that I am making in Xcode 7.2. I have a main menu with a button that has a transition to the settings view controller. The settings view controller has the following code, and every time I get to this controller, it crashes with an EXC_BREAKPOINT error. The funny thing is that this only happens on my iPhone 4 running iOS 7. This is not a failure in iOS Simulator iPhone 6 running iOS 9.

Anyway, here is the code.

//
//  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")
    }

    }
+4
source share
2 answers

NSUserDefaults nil , . nil, ().

Apple , .

AppDelegate applicationDidFinshLaunching

let defaults = NSUserDefaults.standardUserDefaults()
let defaultValues = ["username" : "", "password" : "", "notifications" : false]
defaults.registerDefaults(defaultValues)

Swift 3 +

let defaults = UserDefaults.standard
let defaultValues : [String : Any] = ["username" : "", "password" : "", "notifications" : false]
userDefaults.register(defaults: defaultValues)

false.

let defaults = NSUserDefaults.standardUserDefaults()
let dusername = defaults.stringForKey("username")!
let dpassword = defaults.stringForKey("password")!
let dnotifications = defaults.boolForKey("notifications")

Swift 3 +

let defaults = UserDefaults.standard
let dusername = defaults.string(forKey:"username")!
let dpassword = defaults.string(forKey:"password")!
let dnotifications = defaults.bool(forKey:"notifications")

stringForKey String boolForKey Bool.
valueForKey NSUserDefaults, KVC.

:

username!.text = dusername
password!.text = dpassword
notifications.setOn(dnotifications, animated: true)

setBool:forKey Bool, String setObject:forKey.

+5

valueForKey NSUserDefaults. . (. NSKeyValueCoding. objectForKey, nil afterwords:

let defaults = NSUserDefaults.standardUserDefaults()
if let dusername = defaults.objectForKey("username") as String
{
  //code to use the username
}
else
{
  //code to handle the case where there is no username
}
0

Source: https://habr.com/ru/post/1616958/


All Articles