2017-04-12 11 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

は常にメインスレッドでUI要素を更新し、メインスレッド – iOS

+0

に更新してみてください。 –

答えて

4

メインスレッドでUI要素を更新できるのは、その要求がUIをブロックしないようにバックグラウンドスレッドで実行されている可能性が高いからです。

main threaddispatch_asyncのラベルを設定するための呼び出しをラップすると、問題が解決するはずです。

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

+0

ああ、神様...私は糸を引くことでその章をスキップするべきではないことを知っていました。どうもありがとう! –

関連する問題