Я очень новичок в программировании, и сейчас я ищу в Интернете несколько дней, пытаясь решить эту проблему, которую я имел с моим программированием Swift. Я новичок во всем этом; и я попытался изо всех сил попытаться найти решение самостоятельно. Но, после этого разочаровывающего времени, я, хотя, было бы хорошо спросить экспертов.Неожиданно найдено нуль при разворачивании необязательного значения
код, который я пытаюсь использовать это:
import UIKit
class ViewController: UIViewController {
var myTime: AnyObject = NSUserDefaults() //creates a var called myTime that can be used to save the time parameter.
var timer = NSTimer() // creates a variable used by the timer loop.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
myTime = NSUserDefaults.standardUserDefaults().objectForKey("two")! //sets timer value to last saved value
if (myTime as NSNumber == 0){ //if the initial value doesnt exhist the if statement creates one.
NSUserDefaults.standardUserDefaults().setInteger(0, forKey: "two") //sets timer to zero and saves parameter
}
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("action"), userInfo: nil, repeats: true) // Creates a timer at 1 second time interval which then performs function called 'action' and will continue until boolean is set to false or NSTimer is invalidated.
}
func action(){
myTime = Int(myTime as NSNumber) + 1 // increases myTime by 1
println(myTime) //println(time) // prints myTime
NSUserDefaults.standardUserDefaults().setInteger(myTime as Int, forKey: "two") // saving variable two with value of 2
NSUserDefaults.standardUserDefaults().synchronize() // Added synchronize as suggested by LAMMERT WESTERHOFF
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Сообщение об ошибке я получаю это:
fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)
говоря:
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0)
Я бы искренне оцениваю это, если кто-то может сказать мне, что я делаю неправильно, и как решить мою проблему.
вы не говорите, какая линия дает вам ошибку, но считают, что первый раз, когда вы запустите код не будет никаких записей в значения по умолчанию пользователя. Это заставляет меня думать, что проблема заключается в '.objectForKey (« two »)!'. Вы не можете гарантировать, что будет такой объект. –