Как сохранить и загрузить флажок с Alamofire - PullRequest
0 голосов
/ 12 марта 2019

При установке флажка «дать как» используется флажок и публиковаться на сервере как, но после закрытия проекта флажок закрывается, но как на сервере существует, и я хочу сохранить флажок все время существует

func didlikeAddlaterDesigner(_ sender: UIButton) {
    collectionPostion = array33[sender.tag].accountId!
    index = collectionPostion
     if sender.isSelected {
        sender.isSelected = false
        like(userId:  LoginUser.accountId!, designerid: index!, like: false)
    } else {
        sender.isSelected = true
        like(userId:  LoginUser.accountId!, designerid: index!, like: true)
    }
}
func like(userId : Int, designerid : Int, like : Bool ) {
    let parameters: Parameters = ["userid" : userId, "designerid" : designerid ,"mylike" : like]
    AF.request(URL_like, method: .post , parameters: parameters).responseJSON
        {
            response in
            switch response.result {
            case .success:
                let data : JSON = JSON(response.result.value)
                let result = response.result.value
                return
            case .failure:
                print(response.error)
                print("fail")
            }
    }
}

1 Ответ

0 голосов
/ 12 марта 2019

Либо сервер должен сохранить, чтобы пользователь установил этот флажок, и должен вернуть флаг с ответом, который указывает состояние флажка.

Или, Вы можете сохранить этот флаг самостоятельно в UserDefaults.

func didlikeAddlaterDesigner(_ sender: UIButton) {
    collectionPostion = array33[sender.tag].accountId!
    index = collectionPostion
    if sender.isSelected {
        sender.isSelected = false
        UserDefaults.standard.set(false, forKey: "CheckBoxState_\(index)")
        UserDefaults.standard.synchronize()
        like(userId:  LoginUser.accountId!, designerid: index!, like: false)
    } else {
        sender.isSelected = true
        UserDefaults.standard.set(true, forKey: "CheckBoxState_\(index)")
        UserDefaults.standard.synchronize()
        like(userId:  LoginUser.accountId!, designerid: index!, like: true)
    }
}

Затем при загрузке представления просто установите значение флажка из UserDefaults

checkBox.isSelected = UserDefaults.standard.bool(forKey: "CheckBoxState_\(index)")

Но учтите, что использование второго способа приведет к сбросу флага при удалении пользователем приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...