2017-04-12 100 views
1

我有一個嘗試更新通過故事板連接的UILabel的問題。當我登錄自己的數據從它顯示在控制檯就好了,但它應該我的標籤不更新:故事板UILabel不會更新文本。

CZWundergroundRequest *request = [CZWundergroundRequest newConditionsRequest]; 
    request.location = [CZWeatherLocation locationFromCoordinate: currentLocation]; 
    request.key = @""; 
    [request sendWithCompletion:^(CZWeatherData *data, NSError *error) { 
     self.currentTemperatureLabel.text = [NSString stringWithFormat:@"%f", data.current.temperature.f]; 
     NSLog(@"%f", data.current.temperature.f); 
    }]; 

當我更新viewDidLoad中只是正常的標籤,但一旦我嘗試發送數據到它,它不會更新。我嘗試刪除標籤並重新連接插座。有任何想法嗎?

+0

嘗試在主線程 – iOS

+0

更新總是更新在主線程的UI元素。 –

回答

4

您只能在主線程上更新UI元素,該請求可能會在後臺線程上運行以防止阻止UI。

如果您打包呼叫以在下面的main thread上設置dispatch_async上的標籤,它應該可以解決您的問題。

dispatch_async(dispatch_get_main_queue(), ^{ self.currentTemperatureLabel.text = [NSString stringWithFormat:@"%f", data.current.temperature.f]; });

+0

哦,上帝......我知道我不應該跳過關於線程的那一章。非常感謝! –