저는 스위프트 3에 대해 매우 익숙하며 API에서 GET 요청을해야합니다. 비동기 함수를 사용하는 Alamofire를 사용하고 있습니다.스레드 1 : signal SIGABRT alamofire
나는 내 안드로이드 응용 프로그램에 정확히 동일한 작업을 수행하고, GET은 JSON 데이터
이 신속 내 코드를 반환 : "고해상도 = 응답을
func getValueJSON() -> JSON {
var res = JSON({})
let myGroup = DispatchGroup()
myGroup.enter()
Alamofire.request(url_).responseJSON { response in
res = response.result.value as! JSON
print("first result", res)
myGroup.leave()
}
myGroup.notify(queue: .main) {
print("Finished all requests.", res)
}
print("second result", res)
return res
}
을하지만 라인에 문제가 .result.value "나에게 오류를 제공합니다 : 스레드 1 : 신호 SIGABRT
정말 어디에서 문제가 온다 이해가 안 돼요," "동기 기능을 수행하기 꽤 힘들었어요, 아마도 내가 그것을하고 있어요 잘못된.
내 목표는 내가 반환하는 변수에 요청 결과를 저장하는 것입니다. 누구든지 도울 수 있니?
괜찮아 보이지만 루프에서 선언 한 변수를 어떻게 반환 할 수 있습니까? 다른 곳에서 선언 할 때 스레드 오류가 있습니다. –
보통 클래스 속성을 선언합니다. '''var results : JSON = []'''그리고 아래에서는''''sucess (let value)'''에'''self.results = JSON (value)''를 추가합니다. 나중에 사용하십시오. 그러나 이것은''SwiftyJSON'''을 필요로합니다. – Nedim
하지만 비동기 적으로 인쇄 후에 요청이 끝나기 때문에 변수를 저장할 수 없습니다. 세마포어는 어떻게 설정 하시겠습니까? 아니면 뭔가 다른 걸까요? –