나는 클래스가 db_conn
을 불러 craeted 한이 calass 내부 I는 다음과 같은 기능이 있습니다내 함수가 String을 반환하지만 구문 분석 할 수 없습니까? 왜 어떤 생각?
public func login (email : String , password : String) -> String {
var result = ""
let url = URL(string: API.url_login.rawValue)!
var request = URLRequest(url: url)
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
let postString = "email=\(email)&password=\(password)"
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print("error=\(String(describing: error))")
return
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("\(String(describing: response))")
}
let responseString = String(data: data, encoding: .utf8)
result = String(responseString!)
//print("responseString = \(responseString!)")
}
task.resume()
return result
}
다음 내 로그인의 ViewController 클래스에 내가 ==처럼 사용하려고를>
@IBAction func login_button_action(_ sender: UIButton) {
let email = email_text.text
let passw0rd = password_text.text
if (email != "" && passw0rd != ""){
let db_connect = db_conn()
if (db_connect.login(email: email!, password: passw0rd!) == nil){
print("it's empty ")
}else {
print("not empty \(db_connect.login(email: email!, password: passw0rd!))")
}
}else {
let alert = UIAlertController(title: "Error", message: "Dont leave any of the spaces blank , they all must be filled up , try again ! ", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: nil))
self.present(alert, animated: true, completion: nil)
}
때 나는 그것이 db_connect.login(email: email!, password: passw0rd!)
에 대한 값은 비어 있지 않지만 그것을 인쇄하지 않는다고 말하는 프로젝트를 실행합니다. (그러나 내 db_conn CALSS 내가 쉽게 responseString
을 인쇄 할 수 있습니다 내가 문자열 형식으로 반환 된 JSON을 얻을. 어떤 생각을 내가 실수를하고 어디에? 그리고 나는 아마도 문제를 해결할 수있는 방법?
비동기 처리에 대해 알아보십시오 – rmaddy
"Ho 나는 db_conn 함수를 사용하여 responseString을 쉽게 인쇄 할 수 있고 반환 된 JSON을 String 형식으로 얻을 수 있습니다. "결과를 반환하기 전에 인쇄를 추가하고 결과가 String (responseString!)인지 확인하십시오. 비동기 로직이 누락되었습니다. – Larme