使用 Alamofire 在 user_id iOS 中保存数据

Posted

技术标签:

【中文标题】使用 Alamofire 在 user_id iOS 中保存数据【英文标题】:Save datas in user_id iOS using Alamofire 【发布时间】:2018-06-26 14:29:31 【问题描述】:

如何将所有数据表单存储在特定用户 ID 中?我有一个注册页面,所以每个用户都有不同的 user_id。然后我有表格来填写他们的基本信息,教育等。

例如,假设用户(人)“A”已在注册页面中注册了“ABCD”随机用户 ID,并且用户(另一个人)“B”也已注册,因此生成了“EFGH”用户 ID。

所以他们的数据必须根据他们的注册用户ID存储在特定的用户ID中(A'数据必须存储在“ABCD”中,B的进一步信息必须存储在“EFGH”中。我怎么能这样做呢?阿拉莫火?

我对Alamofire的发帖要求如下,

 @IBAction func eduSave(_ sender: UIButton) 
   let parameters: Parameters=[

            "institute_name":univ.text!,
            "degree_name":grad.text!,
            "start_year":cityP.text!,
            "end_year":enYear.text!,
            "degree_city":proj.text!,
            "degree_country":eduCountry.text!
        ]

   //Sending http post request
        Alamofire.request(URL_USER_EDUCATION, method: .post, parameters: parameters).responseJSON
            
                response in
                //printing response
                print(response)

                //getting the json value from the server
                if let result = response.result.value 

                    //converting it as NSDictionary
                    let jsonData = result as! NSDictionary
                      let retrievedString: String? = KeychainWrapper.standard.string(forKey: "user_id")

                
        

        let experience = self.storyboard?.instantiateViewController(withIdentifier: "experience") as! ExperienceViewController

        self.present(experience, animated: true)

    

【问题讨论】:

【参考方案1】:

我通过 iPhone 开发人员 @Muhammed Azharuddin 找到了答案,方法是为用户默认值创建一个类以将数据存储在 user_id 中

extension UserDefaults

    static let isLoggedIn = "com.xyz.AlotTest1isLoggedIn"
    static let userId = "com.xyz.AlotTest1userId"


并在@IBAction 之后的参数中调用这个扩展

 let parameters: Parameters=[

    "institute_name":univ.text!,
    "degree_name":grad.text!,
    "start_year":cityP.text!,
    "end_year":enYear.text!,
    "degree_city":proj.text!,
    "degree_country":eduCountry.text!,
    "user_id" : AuthService.instance.userId ?? ""
]


print(parameters)

//Sending http post request
    Alamofire.request(URL_USER_EDUCATION, method: .post, parameters: parameters).responseJSON
        
        response in
        //printing response
        print(response)

        //getting the json value from the server
        if let result = response.result.value 



            let re = UserDefaults.standard.value(forKey: "user_id") as! Array<Parameters>
            print(result)

            let defaults: UserDefaults = UserDefaults.standard

            //This class variable needs to be defined every class where you set or fetch values from NSUserDefaults



        

let ViewController:UIViewController = UIStoryboard(name: "Bar", bundle: nil).instantiateViewController(withIdentifier: "experience") as UIViewController
self.present(ViewController, animated: false, completion: nil)

【讨论】:

以上是关于使用 Alamofire 在 user_id iOS 中保存数据的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire httpBody 在 swift 5 中显示 500 statusCode

使用 Alamofire 快速解析 JSON 时获取 nil 值

在 iOS 中使用 Alamofire 上传图像

使用 Alamofire 将图像上传到 API 服务器

使用 alamofire 下载图像 - iOS

Alamofire 不能在 podfile 中使用 osx 而不是 ios