サービスの回答を持つ変数provincias_wsを持っていますが、これまでのところすべては問題ありませんが、私がtextFieldDidBeginEditingメソッドで印刷したいので、provincias_ws変数がどのようになっているか知りたいのですがswiftのグローバル変数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