메뉴 건너뛰기

정보자료게시판

로그인 과정을 비동기화로 했더니 발생하는 문제

by Summa posted Sep 11, 2024
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

빈화면의 뷰가 먼저 나온다.

 

코파일럿에게

 

func loginInfo(parameters: [String: Any], completion: @escaping () -> Void) { // func createPost(parameters: [String: Any]) { guard let url = URL(string: "\(prefixURL)/login") else { print("Not Found URL") return } let data = try! JSONSerialization.data(withJSONObject: parameters) var request = URLRequest(url: url) request.httpMethod = "POST" request.httpBody = data request.setValue("application/json", forHTTPHeaderField: "Content-Type") URLSession.shared.dataTask(with: request) { (data, res, error) in if(error != nil) { print("error", error?.localizedDescription ?? "") return } do { if let data = data { let result = try JSONDecoder().decode(apikeyModel.self,from: data) DispatchQueue.main.async { let value = result.apikey print(result) print(value) UserDefaults.standard.set(value, forKey: "apikey") } } else { print("No Data") } completion() } catch let JsonError { print("fetch json error:", JsonError.localizedDescription) } }.resume() }

 

동기 버전으로 바꿔줘

 

라고 요청했다.

 

코파일럿이

 

func loginInfoSync(parameters: [String: Any]) -> Bool {
    guard let url = URL(string: "\(prefixURL)/login") else {
        print("Not Found URL")
        return false
    }
    
    let data = try! JSONSerialization.data(withJSONObject: parameters)
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.httpBody = data
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    
    let semaphore = DispatchSemaphore(value: 0)
    var success = false
    
    URLSession.shared.dataTask(with: request) { (data, res, error) in
        if let error = error {
            print("error", error.localizedDescription)
            semaphore.signal()
            return
        }
        
        do {
            if let data = data {
                let result = try JSONDecoder().decode(apikeyModel.self, from: data)
                let value = result.apikey
                print(result)
                print(value)
                UserDefaults.standard.set(value, forKey: "apikey")
                success = true
            } else {
                print("No Data")
            }
        } catch let jsonError {
            print("fetch json error:", jsonError.localizedDescription)
        }
        semaphore.signal()
    }.resume()
    
    semaphore.wait()
    return success
}
 

요렇게 하라고 한다.

 

했더니 된다. 헐~~~

 

 

 


List of Articles
번호 분류 제목 글쓴이 날짜
공지 각종 사진들 Summa 2025.07.22
공지 꾸준히 하는 취미를 가져보기로 한다 Summa 2025.04.02
933 사회/생태/환경 [뉴스플러스] 7년간 사라진 9억 그루의 나무, 이유는? 맘씨 2016.04.05
932 여행/맛집/음식 원주여행, 개건너 이사왔네 맘씨 2016.04.05
931 학습/연구 우리반 알림장 (어플) 맘씨 2016.04.05
930 연애/결혼/교육 육아에 버거워하는 동생을 보며 맘씨 2016.04.05
929 연애/결혼/교육 남편과의 결혼 맘씨 2016.04.05
928 학습/연구 학교입시 맘씨 2016.04.05
927 학습/연구 2017학년도 서울특별시 고등학교 입학전형 기본계획 맘씨 2016.04.06
926 학습/연구 서울 자사고 “지원자 전원 자소서 제출하라”... 교육청에 보이콧 보도 관련 맘씨 2016.04.06
925 문화/연예/가십 송승헌♥유역비 '제3의 사랑' 티저…운명처럼 찾아온 사랑 맘씨 2016.04.06
924 문화/연예/가십 역대 톱스타 아나운서 커플 누구누구?[오상진♥김소영③] 맘씨 2016.04.06
923 사회/생태/환경 [정부청사, 뚫렸다] 송씨 “2년 넘는 시험 준비에 지쳐서 범행”…압수된 공무원 출입증은 3개 맘씨 2016.04.06
922 문화/연예/가십 송중기, 과거 전여친과 스티커 사진 화제 맘씨 2016.04.06
921 사회/생태/환경 "불륜연인 골탕먹이려고"…낚싯대로 식당에서 신발 훔쳐(종합) 1 맘씨 2016.04.06
920 연애/결혼/교육 아기들 밥 먹이기...1 라키 2016.04.06
919 사회/생태/환경 '환전 명소‘ 서울역…방학 땐 2시간 줄선다 맘씨 2016.04.06
918 연애/결혼/교육 [카드뉴스] 우울할때 술? 차라리 울어라 맘씨 2016.04.07
917 문화/연예/가십 [어저께TV] '라스' 장동민♥나비, 다음엔 결혼 후 나오는 걸로 맘씨 2016.04.07
916 사회/생태/환경 무너지는 '트럼프 대세론' 맘씨 2016.04.07
915 문화/연예/가십 유승준, 논란 속 음악 작업 근황 "저 가수잖아요" 맘씨 2016.04.07
914 사회/생태/환경 "지각하겠다"…정부청사 보안강화로 공무원들 발 동동 맘씨 2016.04.07
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 47 Next
/ 47
위로