繁体   English   中英

通过功能访问插座

[英]Accessing outlets from function

我刚刚开始学习Swift。 我创建了一个管理REST API调用的类,该方法采用3个参数,即data,successCallback和failCallback。

很好,我得到了数据,我解析了JSON等。

我的问题是,在传递给API方法的successCallback内部,我无法做任何与IBOutlets相关的事情。 我尝试了self.textfield.text,textfield.text,没有任何效果。 没错,没事。

 func naturalSearch(data : String, callback:(NSDictionary) -> (), fail :(String) -> ()) {

    request(getLink("v2/natural"), data : data, callback : callback, fail : fail)
}

这是API方法。

service.naturalSearch(SearchTextfield.text, callback: processResponse, fail: responseFail)

这就是我所说的方法。 内部流程响应与网点工作无关的任何内容。 我有3个,2个文本字段和一个tableview。 我试图隐藏/更改标签/等,但没有任何效果。

谢谢Mihai

这是因为您正在使用回调函数,该函数在UI线程之外执行。 您应该使用dispatch_async包装UI更改代码。

例如:

dispatch_async(dispatch_get_main_queue(), {
    self.labelOutlet.text = "Text"
})

您只能在主线程中修改UI元素。 要访问它,请使用:

dispatch_async(dispatch_get_main_queue()) { /* your Code */ }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM