[英]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.