Save a tuple in NSUserDefaults

后端 未结 5 1644
梦毁少年i
梦毁少年i 2021-01-12 13:14

I\'m using a tuple to store something like this.

var accessLavels: (hasInventoryAccess: Bool, hasPayrolAccess: Bool)
accessLavels = (hasInventoryAccess: true         


        
5条回答
  •  無奈伤痛
    2021-01-12 13:53

    You can store Bool, Float, Int, Object, Double or URL but not a Tuple. So you have two options, save two only hasPayrolAccess and hasPayrolAccess Bool values:

    NSUserDefaults.standardUserDefaults().setBool(true, forKey: "hasInventoryAccess")
    NSUserDefaults.standardUserDefaults().setBool(false, forKey: "hasPayrolAccess")
    let hasInventoryAccess  = NSUserDefaults.standardUserDefaults().boolForKey("hasInventoryAccess")
    println(hasInventoryAccess)
    
    let hasPayrolAccess  = NSUserDefaults.standardUserDefaults().boolForKey("hasPayrolAccess")
    println(hasPayrolAccess)
    

    Or save it using an Array of Bool:

    var accessLavels = [true,false]
    println(accessLavels)
    NSUserDefaults.standardUserDefaults().setValue(accessLavels, forKey: "accessLavels")
    if let loadAccessLavels = NSUserDefaults.standardUserDefaults().arrayForKey("accessLavels") as? [Bool] {
        if let hasInventoryAccess = loadAccessLavels.first {
            println(hasInventoryAccess)
        }
        if let hasPayrolAccess = loadAccessLavels.last {
            println(hasPayrolAccess)
        }
    }
    

提交回复
热议问题