2016-04-30 11 views
-1

Ich versuche Tage zu überprüfen, ob X aus der App-Installation übergebenNSDateComponents Vergleichen auf Integer (oder konvertieren NSDateComponents zu integer)

NSDate *now = [NSDate date]; 
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 
NSDateComponents *components = [gregorianCalendar components:NSCalendarUnitDay 
                fromDate:[[NSUserDefaults standardUserDefaults] 
                   objectForKey:@"firstTimeDate"] 
                 toDate:now 
                options:0]; 

einige Funktionen freizuschalten, aber wenn ich tun

if (!(components < 1)) { 
... 
} 

ich bekomme

Bestellen Vergleich zwischen Zeigern und integer ('NSDateComponents *' und 'int')

Antwort

3

Da Sie nach der Anzahl der Tage fragen, sollten Sie auf die day Eigenschaft zugreifen.

if (components.day >= 1) { 
} 

Hinweis: x >= y Verwendung ist wahrscheinlich klarer als !(x < y) verwenden.

+0

nett! Tage werden um 00:00:00 oder alle 24 Stunden erhöht? – fabersky

+0

Versuchen Sie andere Werte, aber ich glaube, Sie erhalten 1 Tag, wenn die beiden Daten 24 Stunden auseinander liegen. – rmaddy