我从服务器获取请求并尝试在tablview中显示它。在这个过程中,我想在获取记录后隐藏微调器。 问题是:任何与self inside block相关的东西都不起作用。
@IBOutlet weak var spinner: UIActivityIndicatorView!
@IBOutlet weak var customTableview: CustomTableView!
var widgetArray :NSMutableArray = []
override func viewDidLoad() {
super.viewDidLoad()
print(DataObjects.sharedInstance.mainArray)
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
spinner.hidden = false
spinner.startAnimating()
CustomNetworkHit.networkHitForUrl("http://winjitwinds.cloudapp.net/windapi/windapiservice.svc/getcategorydatapagewise?categoryid=1944&pageno=1", completion: {(arrayResult) -> Void in
// spinner does not stop animating and it does not hide
self.spinner.stopAnimating()
self.spinner.hidden = true
print("Disable the spinner man")
DataObjects.sharedInstance.mainArray.addObjectsFromArray(arrayResult as [AnyObject])
self.widgetArray.addObjectsFromArray(arrayResult as [AnyObject])
self.customTableview.setUpTableView(self.widgetArray)
// UItableview Does not reload Data.
self.customTableview.reloadData()
})
答案 0 :(得分:1)
请说明“不起作用”的含义。没有它,很难确定,但我猜你正在尝试在后台线程上进行UI工作(块不在主线程上运行)。
在你的区块中试试这个:
dispatch_async(dispatch_get_main_queue(), ^(){
// UI CODE GOES HERE
});
在斯威夫特:
dispatch_async(dispatch_get_main_queue()) {
// UI CODE GOES HERE
}