我正在尝试在 swift 4 的配置文件中获取特定的登录用户数据 [英] I am trying to get particular logged in user data in the profile in swift 4
本文介绍了我正在尝试在 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屋!
查看全文