好的,基本上我试图将标签链接到XCode 4.6.2中的代码块。我使用设计师链接它,但无论我把它放在哪里,它都会给我这个错误信息。我是xcode的新手,觉得这应该是一个简单的修复。谢谢你的反馈/
(void)updateLabel {
@property (weak, nonatomic) IBOutlet UILabel *Timer;
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
int units = NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *components = [calendar components:units fromDate:[NSDate date] toDate:destinationDate options:0];
[dateLabel setText:[NSString stringWithFormat:@"%d%c %d%c %d%c %d%c %d%c", [components month], 'M', [components day], 'D', [components hour], 'H', [components minute], 'M', [components second], 'S']];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
destinationDate = [[NSDate dateWithTimeIntervalSince1970:1383652800] retain];
timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateLabel) userInfo:nil repeats:YES];
}
答案 0 :(得分:6)
问题是@property
只能出现在@interface
内。这可以是.h文件或.m文件中的类扩展。但它肯定不能放在方法实现中。
鉴于您的属性也是IBOutlet
,它应该在.h文件中。
旁注:
您创建标签文字的方式很奇怪。至少,这样做:
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
int units = NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *components = [calendar components:units fromDate:[NSDate date] toDate:destinationDate options:0];
dateLabel.text = [NSString stringWithFormat:@"%dM %dD %dH %dM %dS", [components month], [components day], [components hour], [components minute], [components second]];
更好的是,使用NSDateFormatter
:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"M'M' d'D' H'H' m'M' s'S'"];
dateLabel.text = [formatter stringFromDate:[NSDate date]];
答案 1 :(得分:0)
@property声明不属于您的函数。 您应该始终在函数之前放置“@”声明。