1

基本的に、ラベルを 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];



}
4

2 に答える 2

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]];
于 2013-05-25T20:17:36.433 に答える
0

@property 宣言が関数に属していません。関数の前に常に「@」宣言を配置する必要があります。

于 2013-05-25T20:17:17.830 に答える