我只是想尝试使用以下代码在星期五下午4点至下午6点之间的星期五更改UILabel上的文本,但是未调用if语句?我正在通过Interface Builder使用UILabel的子类。

- (void)viewDidLoad {
    [super viewDidLoad];
    [NSTimer scheduledTimerWithTimeInterval:1.0 target:self     selector:@selector(targetMethod) userInfo:nil repeats:YES];
}

-(void)targetMethod {
    NSLog(@"Called Timer");

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"EEE hh mm"];
    NSDate *dt = [NSDate date];
    NSString *dayAsString = [formatter stringFromDate:dt];
    NSArray *array = [dayAsString componentsSeparatedByString: @""];
    if([[array objectAtIndex:0] isEqualToString:@"Friday"] && [[array     objectAtIndex:1] intValue]>=4 &&  [[array objectAtIndex:1] intValue]<=6 &&   [[array objectAtIndex:2] intValue]>=0 && [[array objectAtIndex:2] intValue]  <=59)
    {
        self.scrollingLabel.text = @"On Air";
        NSLog(@"On Air");
    }
    else
    {
        self.scrollingLabel.text = @"Off Air";
        NSLog(@"Off Air");
    }
}

任何帮助,将不胜感激。

最佳答案

您犯了2个错误

[formatter setDateFormat:@"EEE hh mm"];中的

  • "EEE"仅显示一天中的3个字符,例如“Fri”。
  • NSArray *array = [dayAsString componentsSeparatedByString: @""];将仅返回数组中的一个对象。

  • 现在您需要做
  • 如果有条件,请在您中将“星期五”更改为“星期五”,或使用"EEEE"(4E)将返回全名,例如“星期五”。
  • NSArray *array = [dayAsString componentsSeparatedByString: @" "];中的单个空格分隔
  • 关于ios - 如果未调用语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31554642/

    10-11 00:28