Ios 刷新UILabel
我正在尝试使用ViewController.m文件中的代码更新UILabelIos 刷新UILabel,ios,objective-c,user-interface,uilabel,Ios,Objective C,User Interface,Uilabel,我正在尝试使用ViewController.m文件中的代码更新UILabel returnInfo.text = @"The website is up!"; 但这一变化在几分钟内不会出现在应用程序中,但它确实会出现。我做错了什么?为什么要花这么长时间才能出现?我希望标签在代码执行后立即进行可视化更新 这是我的整个ViewController.m文件: (第40、45、51行)我有一个非常糟糕的解决方案,只是我现在想不出更好的 下一个解决方案是: ViewController.h NSStri
returnInfo.text = @"The website is up!";
但这一变化在几分钟内不会出现在应用程序中,但它确实会出现。我做错了什么?为什么要花这么长时间才能出现?我希望标签在代码执行后立即进行可视化更新
这是我的整个ViewController.m文件:
(第40、45、51行)我有一个非常糟糕的解决方案,只是我现在想不出更好的
下一个解决方案是:
ViewController.h
NSString *someData;
NSTimer *testTimer;
ViewController.m
-(void)tempMethod{
if (([someData rangeOfString:@"\"status_code\": 1"].location == NSNotFound) &&
([someData rangeOfString:@"\"status_code\": 2"].location == NSNotFound)) {
returnInfo.text = @"This URL looks invalid";
NSLog(@"Status Code 3");
} else if (([someData rangeOfString:@"\"status_code\": 2"].location == NSNotFound) &&
([someData rangeOfString:@"\"status_code\": 3"].location == NSNotFound)) {
returnInfo.text = @"The website appears to be up!";
[returnInfo setNeedsDisplay];
NSLog(@"Status Code 1");
} else if (([someData rangeOfString:@"\"status_code\": 3"].location == NSNotFound) &&
([someData rangeOfString:@"\"status_code\": 1"].location == NSNotFound)) {
NSLog(@"Status Code 2");
returnInfo.text = @"This website is down";
}
}
- (IBAction)connection:(UIButton *)sender{
NSString *url= @"http://isitup.org/duckduckgo.com.json";
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:[NSURL URLWithString:url]
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error) {
someData = [NSString stringWithUTF8String:[data bytes]];
NSLog(@"%@",someData);
}] resume];
testTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(tempMethod) userInfo:nil repeats:YES];
}
我给您的建议是:阅读有关UIViewController生命周期和线程的内容:
另一个对脏代码的抱歉。我可以接受这个答案的一些缺点,我明天会考虑更好的方法。是否将标签添加到主可见视图?是否确定它正在主线程上运行?我想更新名为Connection的实例方法中的标签您是否在视图控制器中为
returnInfo
标签设置了出口?因为它看起来不像一个属性,并且在您的ViewController.m文件中,我看不到将变量returnInfo
与实际标签连接在何处。它是使用从连接检查器拖动到标签的可视界面连接的(可能?)