共享偏好 Swift 4- iOS- 唯一 Alamofire 用户 ID

Posted

技术标签:

【中文标题】共享偏好 Swift 4- iOS- 唯一 Alamofire 用户 ID【英文标题】:Shared Preference Swift 4- iOS- Unique Alamofire user id 【发布时间】:2018-05-21 06:12:14 【问题描述】:

在我的分类项目中,有一个用户注册页面和 php 生成的用户 ID,因此在该特定用户 ID 中,特定用户的所有其他数据都需要保存。我会分享我的 swift 注册代码和 swift 数据表单以保存在该特定用户 ID 中。但是注册用户ID已成功保存,但以数据形式输入的数据未保存在唯一用户ID中。请帮我解决这个问题...

注册页面快捷

 let parameters: Parameters=[

        "user_name":nameTextField.text!,
        "user_email":emailTextField.text!,
        "user_mobile":mobileNumb.text!,
        "password":passwordTextField.text!
    ]
          //Sending http post request
    Alamofire.request("https://alot.ae/api/user_reg.php", 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 defaults: UserDefaults = UserDefaults.standard
                //This class variable needs to be defined every class where you set or fetch values from NSUserDefaults
                defaults.setValue("password", forKey: "user_id")
                defaults.synchronize()
                //Call this when you're done editing the defaults. It saves you

            

我的其他表单的快速代码必须以该特定用户 ID 保存数据

 //creating parameters for the post request
    let parameters: Parameters=[

        "full_name":profN.text!,
        "position":position.text!,
        "email":emailCompa.text!,
        "phone_number":numComP.text!

    ]
    //Sending http post request
    Alamofire.request(URL_USER_EMPLOYER_PROFILE, 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 defaults = UserDefaults.standard
                defaults.set("URL_USER_EMPLOYER_PROFILE", forKey: "user")

            
    

【问题讨论】:

你的要求能更具体吗? 我创建了随机用户 ID 用于注册。例如,用户的电子邮件:abc@...com 和密码:xxxx 已注册。所以我得到确认 used id : ABCD 已经创建。因此,无论何时登录并填写教育详细信息或任何数据等表格,该同一用户都必须保存在同一用户 ID 中:ABCD。同样地。我怎样才能做到这一点?请让我知道(意味着一个用户在同一用户 ID 中存储的共享偏好数据) @AzeTech 当用户更换设备时,您将如何处理? @ TheTiger ,用户更换设备没关系我的意思是假设如果我是新用户,我将注册,所以会有用户 ID。因此,每当我添加我的详细信息或上传任何必须保存在该特定用户 ID 中的文件时。假设其他人正在注册该用户也将拥有单独的用户 ID。然后所有详细信息都必须输入该特定用户 ID。 【参考方案1】:

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

extension UserDefaults

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


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

//creating parameters for the post request
        let parameters: Parameters=[

            "full_name":profN.text!,
            "position":position.text!,
            "email":emailCompa.text!,
            "phone_number":numComP.text!,
             "user_id" : AuthService.instance.userId ?? ""
        ]


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

        //    getting the json value from the server
               if let result = response.result.value 
                   UserDefaults.standard.value(forKey: "user_id")
                 //  converting it as NSDictionary
                   let jsonData = result as! NSDictionary

                let defaults: UserDefaults = UserDefaults.standard

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

                                               
       


        let employer = self.storyboard?.instantiateViewController(withIdentifier: "employer") as! EmployerViewController

        self.present(employer, animated: true)
        

【讨论】:

以上是关于共享偏好 Swift 4- iOS- 唯一 Alamofire 用户 ID的主要内容,如果未能解决你的问题,请参考以下文章

Swift:如何存储用户偏好? [关闭]

Swift 3D Touch iOS 10 主屏幕快速操作分享项目丢失

Swift 中的 iOS 共享扩展抓取 URL

javascript NodeJS模块,用于通过www.jsonstore.io(ala firebase)存储(公共)JSON

swift ios唯一的名字

用于调度通知的唯一标识符,Swift 3 iOS 10