У меня есть JSON вызов, который возвращает UUID "E07ABFD8-429B-4A5A-AEDB-EE4C9E9A7C74", который является SessionID. Я печатаю JSON, так что я знаю, что это не пусто. Я хотел бы записать SessionID в таблицу CoreData и поле в формате UUID.
let sessionID = UUID(uuidString: JSON(dictMain)["SESSIONID"].stringValue)!
Я не могу преобразовать JSON в формат UUID, чтобы поместить его в базовые данные, приведенная выше переменная возвращает пустое значение.
SVProgressHUD.show()
SVProgressHUD.setDefaultMaskType(.black)
self.view.endEditing(true)
let apiEndpoint: String = "https://xxx.xxx.net/iocserver/MobileApp.aspx?action=MobileApp"
//CompanyNameDD.selectedIndex
let headers = HTTPHeaders(["Content-Type" : "application/json","WebSiteAppID":self.PassSiteId])
var param = [String: Any?]()
param["Command"] = "ValidateUser"
var cellNo = KeychainSwift().get("userMobileNumber") == nil ? "" : KeychainSwift().get("userMobileNumber")!//PassMobileNumber
cellNo.removeFirst()
let strParam = jsonToString(json: ["CELLNO":"+27\(cellNo)","PIN":self.OTPfield.text!])
param["Data"] = strParam?.base64Encoded()
param["Signature"] = strParam?.base64Encoded()?.sha256Signature()
AF.request(URL(string: apiEndpoint)!, method: .post, parameters: param as Parameters, encoding: JSONEncoding.default, headers: headers).responseJSON { (response) in
SVProgressHUD.dismiss()
switch response.result {
case .success(let value):
if let json = value as? [String: Any] {
print(json)
let data = JSON(json)
if data["Status"].stringValue == "0" {
let alert = UIAlertController(title: "Error", message: data["Message"].stringValue, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Ok", style: .destructive) { _ in
return
})
self.present(alert, animated: true)
}
else {
let jsonStr = data["Data"].stringValue.base64Decoded()
let dict = convertToDictionary(text: jsonStr!)
if let dictMain = dict {
let sessionID = UUID(uuidString: JSON(dictMain)["SESSIONID"].stringValue)!
self.manageUserAccount.CreateUserAccount(NameSurname: (JSON(dictMain)["FNAME"].stringValue + " " + JSON(dictMain)["SNAME"].stringValue), CompanyOffice: self.PassCompanyOffice, EmployNo: JSON(dictMain)["EMPNO"].stringValue, CurrencyBalance: self.PassCurrencyBalance, AccountPin: self.OTPfield.text!, SessionID: sessionID, CompanyOfficeID: self.PassSiteId)
self.navigationController?.popToRootViewController(animated: true)
}
}
}
case .failure(let error):
print(error)
let alert = UIAlertController(title: "Error", message: error.localizedDescription, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Ok", style: .destructive) { _ in
return
})
self.present(alert, animated: true)
}