当应用程序第一次加载IOS时,UILabel没有被创建

时间:2014-11-04 21:12:26

标签: ios null uilabel variable-assignment

当应用加载时,我遇到了UILabel没有分配Text的问题。有两种方法 updateDateLabel updateTitleLabel (将分配两个不同的标签),当应用加载应用时,第一次加载应用时会再次调用根据用户要求。

- (void)updateDateLabel {
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
outputFormatter.dateFormat = @"HH:mm MM-dd-YY";
_dateLabel.text = [NSString stringWithFormat:@"as of: %@", [outputFormatter stringFromDate:_refreshDateTime]];
[_dateLabel setNeedsDisplay];

}

-(void)updateTitleLabel {
_selectedProfileData = [_balanceData objectAtIndex:_selectedProfile];
if ([NSNull null] != [_selectedProfileData objectForKey:@"advProfileName"]) {
    NSString *name = [_selectedProfileData objectForKey:@"advProfileName"];
    _titleLabel.text = [NSString stringWithFormat:@"%@'s Balances", name];
    [_titleLabel setNeedsDisplay];
} else {
    _titleLabel.text = @"QuickView Balances";
    [_titleLabel setNeedsDisplay];
}

}

问题是,当应用首次加载时,它应显示 QuickView余额:,但最新发生的是它显示(nulls)的余额: (空)即可。

我的猜测是第一次调用这些方法时没有创建标签,任何人都可以帮我解决这个问题。谢谢

1 个答案:

答案 0 :(得分:0)

您的[_selectedProfileData objectForKey:@"advProfileName"]为空。检查

NSLog(@"%@", [_selectedProfileData objectForKey:@"advProfileName"]);

您会看到(null)。如果您的值为null,则进行测试,只需执行

if([_selectedProfileData objectForKey:@"advProfileName"] != nil)

或只是

if([_selectedProfileData objectForKey:@"advProfileName"])

您无需致电setNeedsDisplay,如果您在屏幕上看到某些内容,则会创建标签。