잠시 동안이 함수가 반환하는 값을 viewDidLoad의 외부 변수에 할당하는 데 어려움을 겪고 있지만 빈 문자열을 반환합니다. getUid() - firebase의 uid를 반환합니다. prRef - 사용자를 위해 firebase 테이블을 호출합니다.Swift에서 문자열 함수 외부에 변수를 지정합니다. 3
누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까? 사전에
감사합니다,
var currentWorkplaceId: String?
func getCurrentWorkplaceId() -> String {
//completion:@escaping (Bool)->Void
var workplaceid = String()
prRef.child(getUid())
.child("workplace_id")
.observeSingleEvent(of: .value, with: { snapshot in
workplaceid = snapshot.value as! String
})
return workplaceid
}
사용 :
currentWorkplaceId = getCurrentWorkplaceId()
그 동기의 혼합물 (getCurrentWorkpaceId()가 동기) 및 비동기 (observesingleevent가 비동기). 그렇게 섞어서는 안됩니다. 클로저가 workplaceid에 값을 할당하기 전에 return 문을 실행하기 때문에 * 작동하지 않습니다. observeSingleEvent가 getCurrentWorkplaceId – Gruntcakes