iOS Equivalent For Android Shared Preferences

后端 未结 4 1600
挽巷
挽巷 2020-12-22 18:08

I am porting an Android app to iOS, one thing I used was the Shared Preferences in Android to save each time a level was complete.

That way when the user gets back i

4条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-22 18:46

    As per the previous answer, you already know that UserDefaults is the equivalent to shared preferences in ios. You can create a common write function and for read create function based on data type. And call your required method from anywhere.

    ViewController.swift

     // write data
     writeAnyData(key: "MY_KEY", value: "MyData")
     // read string data 
     readStringData(key: "MY_KEY"), animated: true)
    

    Utils.swift

    // read and write user default
    let userDefault = UserDefaults.standard
    // write
    func writeAnyData(key: String, value: Any){
        userDefault.set(value, forKey: key)
        userDefault.synchronize()
    }
    
    // read int values
    func readIntData(key: String) -> Int{
        if userDefault.object(forKey: key) == nil {
            return 0
        } else {
            return userDefault.integer(forKey: key)
        }
    }
    
    // read string values
    func readStringData(key: String) -> String{
        if userDefault.object(forKey: key) == nil {
            return ""
        } else {
            return userDefault.string(forKey: key)!
        }
    }
    // read bool value
    func readBoolData(key: String) -> Bool{
        if userDefault.object(forKey: key) == nil {
            return false
        } else {
            return userDefault.bool(forKey: key)
        }
    }
    

提交回复
热议问题