UILabel在iOS模拟器中显示,但未运行后在设备上运行.IPA应用程序

问题描述:

“iLabel”在模拟器中显示,但是一旦存档并且IPA文件运行,它将无法显示。我试着清理代码,但是没有做任何事情。 iLabel的想法是显示UIIndicator什么时候动画,当指标消失时,当然会消失。UILabel在iOS模拟器中显示,但未运行后在设备上运行.IPA应用程序

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [[self myTableView] setDelegate:self]; 
    [[self myTableView] setDataSource:self]; 
    array = [[NSMutableArray alloc] init]; 

    [self startActivity]; 
} 

-(void)startActivity 
{ 
    indicator.hidden=NO; 
    [indicator startAnimating]; 

    [self uploadData]; 
    NSLog(@"VIEWDIDLOAD-INDICATOR-TURNING-ON: %@", indicator); 
} 

-(void)uploadData 
{ 
    NSLog(@"Uploading..."); 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkForReachability) name:kReachabilityChangedNotification object:nil]; 

    Reachability *reachability = [Reachability reachabilityForInternetConnection]; 
    [reachability startNotifier]; 

    NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus]; 

    if(remoteHostStatus == NotReachable) 
    { 
    UIAlertView *alert = [[UIAlertView alloc] 
          initWithTitle: @"Oops..." 
          message: @"Network connection lost." 
          delegate: nil 
          cancelButtonTitle:@"OK" 
          otherButtonTitles:nil]; 
    [alert show]; } 

    else if (remoteHostStatus == ReachableViaWiFi) 
    { 
    iLabel.text = @"Please be patient..."; 
    } 
} 


- (void) connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    [self setString]; 

    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil]; 
    NSString *string1 = [dic objectForKey:@"name"]; 
    NSString *string7 = [dic objectForKey:@"review_count"]; 
    NSString *string3 = [dic objectForKey:@"display_phone"]; 
    NSDictionary *location = [dic objectForKey:@"location"]; 
    NSArray *array2 = [location objectForKey:@"display_address"]; 
    NSDictionary *coordinate = [location objectForKey:@"coordinate"]; 

    lat = [coordinate objectForKey:@"latitude"]; 
    lon = [coordinate objectForKey:@"longitude"]; 
    mURL = [dic objectForKey:@"mobile_url"]; 

    NSString *string4 = [array2 objectAtIndex:0]; 
    NSString *string5 = [array2 objectAtIndex:1]; 
    NSString *img2String = [dic objectForKey:@"image_url"]; 

for (NSDictionary *diction in dic) 
{ 
    NSString *string6 = [NSString stringWithFormat:@"Yelp Rating:     "]; 
    NSString *string8 = [NSString stringWithFormat:@"Based on %@ Review(s)", string7]; 

    [array addObject:string1]; 
    [array addObject:string6]; 
    [array addObject:string8]; 
    [array addObject:string3]; 
    [array addObject:string4]; 
    [array addObject:string5]; 

    UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:img2String]]]; 
    imageView.image = image; 
    } 

    for (NSDictionary *diction in coordinate) 
    { 
    [array addObject:lat]; 
    [array addObject:lon]; 
    } 

    [[self myTableView] reloadData]; 

    [indicator stopAnimating]; 
    indicator.hidden=YES; 
    [indicator removeFromSuperview]; 

    iLabel.text = @""; 
    [iLabel removeFromSuperview]; 
} 
+0

发布一些代码会有帮助... – rocky 2013-02-27 02:39:08

+2

你碰巧对iLabel有一个弱引用?我无法从你发布的代码中知道,但我已经看到它在删除然后添加具有弱引用的UI元素可以在设备和模拟器上工作,但是一旦它被优化(如在发布/归档版本)内存更加积极地发布,事情消失得更快。您可以通过将您的引用更改为强大来进行测试,如果修复此问题,则会尝试重新编写代码正在执行的操作。 – lehn0058 2013-02-27 03:02:04

不知道为什么我没有赶上它。问题是在以下几点:

if(remoteHostStatus == NotReachable) 
    { 
     UIAlertView *alert = [[UIAlertView alloc] 
          initWithTitle: @"Oops..." 
          message: @"Network connection lost." 
          delegate: nil 
          cancelButtonTitle:@"OK" 
          otherButtonTitles:nil]; 
     [alert show]; } 

    else if (remoteHostStatus == ReachableViaWiFi) 
    { 
     ilabel.text = @"Please be patient..."; 
    } 

我改变了底部到:

else 
    { 
     ilabel.text = @"Please be patient..."; 
    } 

...一切现在是好去。

通过你发布的代码来看,如果远程主机不可达,你从未设置的iLabel文本。因此,如果标签未显示在设备上,请在设置标签时检查设备是否可以访问远程主机。

+0

谢谢,我会检查出来的! – Greg 2013-02-27 03:15:11

+0

我刚想到另一种可能性:我只在我的“.M”界面中声明iLabel。我在想,如果我把它添加到“.H”,保留和综合我可能会有更好的结果? – Greg 2013-02-27 03:21:26