2

アプリケーションの最初の起動から 30 日後にアラート パネルを表示するには、このメソッドをどのように設定すればよいでしょうか?

-(void)awakeFromNib

{

    NSDate * today = [NSDate date];

    NSTimeInterval expiry = ();


    if ([today timeIntervalSinceReferenceDate] > expiry){
        NSRunAlertPanel(@"Trial period has ended", @"Please Register", nil, nil, nil);
        NSLog(@"expired");
        [[NSApplication sharedApplication] terminate:self];
    }

}
4

1 に答える 1

0

dayプロパティ onを使用してNSDateComponents、現在の日付から特定の数の日付の日付を計算します。

NSDate *today = [NSDate date];

NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
dateComponents.day = 30; // 30 days from launch

NSDate *expDate = [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:today options:0];

このチェックは、アプリを初めて開いたときにのみ実行する必要があります。 expDate永続化する必要があります。アプリを初めて起動するたびに、その最初の日付から日付を比較します。

// compare the dates
if ([today compare:expDate] == NSOrderedDescending) {
    // trial expired
}
于 2015-12-18T21:00:42.200 に答える