我正在尝试在 swift 4 的配置文件中获取特定的登录用户数据 [英] I am trying to get particular logged in user data in the profile in swift 4

查看:20
本文介绍了我正在尝试在 swift 4 的配置文件中获取特定的登录用户数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在个人资料中获取特定登录 ID 的数据,但我无法获取它我查看了许多链接,但它对我不起作用.下面是我用来获取数据的函数

I am trying to get a particular logged in ID's data in profile but I am unable to get it I have viewed many links but its not working for me. Below is my function that I have used to get data

功能

func getCompanyFunc() {
        let empURL = URL(string: "http://172.16.1.22/Get-Company-API/get-companies/")
        URLSession.shared.dataTask(with: empURL!) { (data, response, error) in
            do {
                if error == nil {
                    self.getCompanyArray = try JSONDecoder().decode([CompanyDataProfile].self, from: data!)

                    for mainArr in self.getCompanyArray {
                        DispatchQueue.main.async {
                            let companyDefaultValue = UserDefaults.standard
                            if let userID = companyDefaultValue.string(forKey: "user_type_id") {
                                self.getComData = self.getCompanyArray.filter { $0.company_id == userID }
                                print("Company ID Profile=\(userID)")
                                self.companyName_lbl.text = mainArr.company_name
                            }
                        }
                    }
                    print("****Employee Data****\(self.getCompanyArray)")
                }
            }
            catch {
                print("Error in get JSON Data Employee\(error)")
            }
            }.resume()
    }

推荐答案

试试这个.

用户列表对象

import UIKit

class UserListObject: NSObject {

    var strCompanyID: String    = ""
    var strFirstName: String    = ""
    var strLastName: String     = ""
    var strEmail: String        = ""

    class func parseFromDictionary(dict: NSDictionary) -> UserListObject {
        let objUser = UserListObject()

        if let company_id = dict["company_id"] as? String {
            objUser.strCompanyID = company_id
        }
        if let fname = dict["fname"] as? String {
            objUser.strFirstName = fname
        }
        if let lname = dict["lname"] as? String {
            objUser.strLastName = lname
        }
        if let email_id = dict["email_id"] as? String {
            objUser.strEmail = email_id
        }

        return objUser
    }
}

您的视图控制器

全局定义:var arrUsers = [UserListObject]()

所以一旦你从 API 获取数据,你就可以像下面那样存储它.

so once you get data from API you can store it like below.

APIsManager.postCall(url!, params: _parameters, success: { (response) in
    //CommonHelper.hideProgress()
    let JSONData = response as! NSDictionary
    if(JSONData.object(forKey: "Success") as! Bool == true) {
        self.arrUsers.removeAll()
        let arrData = JSONData.value(forKey: "Data") as! NSArray

        for i in 0..<arrData.count {
            let dict = arrData.object(at: i) as! NSDictionary
            let objUser = UserListObject.parseFromDictionary(dict: dict)
            self.arrUsers.append(objUser)
        }
    }
    else {
        // Error
    }
}) { (response) in
    //Error
}

获得 arrUsers 中的所有用户后,您需要像下面这样过滤.

Once you get All users in arrUsers than you need to filter like Below.

let objLoggedInUser = self.arrUsers.filter{ $0. strCompanyID == YOUR_USERDEFAULT_ID}.first // THAT WILL RETURN YOU WHOLE OBJECT WITH ALL DETAILS

现在您可以获得类似的值.

Now you can get values like.

self.lblFirstName.text = objLoggedInUser. strFirstName
self.lblLastName.text  = objLoggedInUser. strLastName

这篇关于我正在尝试在 swift 4 的配置文件中获取特定的登录用户数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆