这是我的代码。我已经解决了这个错误一个月但仍然没有解决。
这是我的代码。
var color : String = ""
var colorSentDictionary = Dictionary<String, Int>()
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
// load colorSentDictionary
self.loadColorSentDictionary()
}
func loadColorSentDictionary () {
// load total messages sent
var defaults : NSUserDefaults = NSUserDefaults.standardUserDefaults()
if (defaults.dictionaryForKey("colorSentDictionary") != nil) {
var colorSentDictionary : NSDictionary = defaults.dictionaryForKey("colorSentDictionary")!
self.colorSentDictionary = colorSentDictionary as Dictionary
}
}
func saveColorSentDictionary () {
// save total messages received
var defaults : NSUserDefaults = NSUserDefaults.standardUserDefaults()
var colorSentDictionary : NSDictionary = self.colorSentDictionary
defaults.setObject(colorSentDictionary, forKey: "colorSentDictionary")
defaults.synchronize()
if (defaults.dictionaryForKey("colorSentDictionary") != nil) {
println("It is not nil !!!!!!!!!") } else { println("It is nil") }
}
@IBAction func sendMessage(sender : AnyObject) {
self.color = "Yellow"
println("The color of the message is: \(self.color)")
// add value to messageSentDictionary
if (self.colorSentDictionary["\(self.color)"] != nil) {
var colorSentCount : Int = self.colorSentDictionary[self.color]!
self.colorSentDictionary["\(self.color)"] = colorSentCount+1
println("It exists")
} else {
self.colorSentDictionary["\(self.color)"] = 1
println("Not exist")
}
self.saveColorSentDictionary()
self.navigationController!.popToRootViewControllerAnimated(true)
}
每当我触发save方法时,总是不保存colorSentDictionary。日志打印“It is nil”,因为它找不到密钥“colorSentDictionary”。
但是如果我在viewWillAppear中放置self.saveColorSentDictionary(),则保存字典并且日志打印出“它不是零!!!!!!!!”。
我认为这个问题很奇怪但是我不认为这是一个错误,因为我在Xcode 6的正式发布版本中进行了测试。有人可以帮我解决这个问题吗?谢谢:))