Iboutlets不在内部工作

时间:2015-07-08 10:02:03

标签: swift block self

我从服务器获取请求并尝试在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()


    })

1 个答案:

答案 0 :(得分:1)

请说明“不起作用”的含义。没有它,很难确定,但我猜你正在尝试在后台线程上进行UI工作(块不在主线程上运行)。

在你的区块中试试这个:

dispatch_async(dispatch_get_main_queue(), ^(){
    // UI CODE GOES HERE
});

在斯威夫特:

dispatch_async(dispatch_get_main_queue()) {
   // UI CODE GOES HERE
}