簡體   English   中英

UILabel值在長時間后發生變化

[英]UILabel value changes after a long time

我有一個UIView ,並且我有一個UILabel ,當我按一個按鈕時,我從服務器接收數據,我想根據新數據更改標簽中的文本,我已經設法做到了,但這需要很長時間(大約一分鍾)以更改文本。 有人知道為什么嗎? 因為我使用NSLog更改后顯示了lbl.text ,它顯示了新數據,但是在屏幕上卻需要一些時間來更改。

    NSLog(@"Sending Data to Server");
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
    NSLog(@"post: %@",post);
    NSString *postLength = [NSString stringWithFormat:@"%ld", (unsigned long)[postData length]];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    NSString *urlstring = [NSString stringWithFormat:JSON_URL];
    [request setURL:[NSURL URLWithString:urlstring]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];
    dispatch_async(dispatch_get_main_queue()
    NSError *error;
    NSURLResponse *response;
    NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

    if (!error) {
        _jsonResults = [NSJSONSerialization JSONObjectWithData:urlData options:kNilOptions error:&error];


        Label.text = [NSString stringWithFormat:@"you have: %@",[_jsonResults objectForKey:@"num"]];

我已經編輯了答案,現在工作正常,我僅在后台線程上更新了標簽,所以我添加了

 dispatch_async(dispatch_get_main_queue()

現在效果很好!

我在后端這樣做,多數民眾贊成在為什么要花這么多時間來更改,我添加了這個dispatch_async(dispatch_get_main_queue()

現在工作正常!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM