변수의 provincias_ws는 서비스의 답을 가지고 있습니다. 지금까지는 모든 것이 괜찮지 만, 어떻게하면 provincias_ws 변수가 global인지 알기를 원합니다. 왜냐하면 textFieldDidBeginEditing 메소드에서 인쇄하기 때문에신속한 전역 변수 3
class ViewCtrl: UIViewController, ValidationDelegate, UITextFieldDelegate {
@IBOutlet weak var txt_ciudadU: SearchTextField!
override func viewDidLoad() {
super.viewDidLoad()
opciones_autocompletado()
txt_ciudadU.delegate = self
}
func opciones_autocompletado(){
txt_provinciaU.inlineMode = true
txt_ciudadU.inlineMode = true
Services.objServices.ServProv().then{
data -> Void in
let res = JSON(data)
let status = res["status"].boolValue
if(status){
let provincias_ws = res["data"]["provincias"] //How to make this variable global
}else{
let error = res["error"]["error_data"].stringValue
print(error)
}
SVProgressHUD.dismiss()
UIApplication.shared.endIgnoringInteractionEvents()
}.catch{
error -> Void in
SVProgressHUD.dismiss()
UIApplication.shared.endIgnoringInteractionEvents()
}
}
func textFieldDidBeginEditing(_ textField: UITextField) {
print(provincias_ws)
}
}
는
왜 클래스 인스턴스 변수로 만들지 않습니까? 그러나 전역으로 지정하려면'class' 블록 외부에서 정의 할 수 있습니다. – shim
어떻게하면됩니까? 나는 신속하다. –
텍스트 필드'txt_ciudadU'는 클래스의 인스턴스 변수 또는 속성이다. 이것은'@ IBOutlet' 또는'weak'가 없어도 동일합니다. 그래서 아마도'var provincias_ws : String' ('String'이라고 가정)과 같을 것이고, 여러분은 그것을 텍스트 필드 변수와 같은 계층 적 레벨로 놓을 것입니다. 그리고 당신은'provincias_ws' 옆에있는'let'을 제거하고 블록 내부에 있기 때문에'self.provincias_ws = res [ "data"] [ "provincias"]'를 앞에 붙이면됩니다. 문맥을 위해 그것을 필요로한다. – shim