I am using a plists to save high scores in my game. So far I can read from a plist but I can't write to it, any ideas?. Here is my code so far, the getBestTime function seems to work, but the updateTime doesn't. The best times for each level are set to -1 by default. Thanks!
func getBestTime(levelNumber : Int) -> Int {
var levels: NSArray?
var bestTime : Int = -1
if let path = Bundle.main.path(forResource: LEVEL_TIMES, ofType: "plist") {
levels = NSArray(contentsOfFile: path)
print(levels)
if let levArr = levels {
let level : NSDictionary = levArr[levelNumber - 1] as! NSDictionary
bestTime = (level[HIGH_SCORE_KEY] as? Int)!
}
}
return bestTime
}
func updateTime(levelNumber : Int, time : Int) -> Bool {
var levels: NSMutableArray?
if let path = Bundle.main.path(forResource: "LevelTimes", ofType: "plist") {
levels = NSMutableArray(contentsOfFile: path)
if let levArr = levels {
let level : NSMutableDictionary = levArr[levelNumber - 1] as! NSMutableDictionary
let curTime = (level[HIGH_SCORE_KEY] as? Int)!
if curTime == -1 || curTime > time {
level.setValue(time, forKey: HIGH_SCORE_KEY)
levels?.write(toFile: path, atomically: true)
print(levels)
return true
}
}
}