8
szukam czegoś podobnego:Initialize NSDate z datą niestandardowego
NSDate *date = [[NSDate alloc] initWithYear:1984 month:10 Day:8];
Czy istnieje sposób, aby zrobić coś takiego?
Dzięki!
szukam czegoś podobnego:Initialize NSDate z datą niestandardowego
NSDate *date = [[NSDate alloc] initWithYear:1984 month:10 Day:8];
Czy istnieje sposób, aby zrobić coś takiego?
Dzięki!
Napisałem kategorię do tego zadania. W NSDate brakuje wielu przydatnych metod.
@interface NSDate (missingFunctions)
+ (NSDate *)dateWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day;
@end
@implementation NSDate (missingFunctions)
+ (NSDate *)dateWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day {
NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease];
[components setYear:year];
[components setMonth:month];
[components setDay:day];
return [calendar dateFromComponents:components];
}
@end
Działa jak urok. Dziękuję Ci :). – Carlo
Tego nie brakuje. Celowo tam nie ma. Teoria mówi, że hipotetyczne '+ [NSDate dateWithYear: month: day:]' spowodowałoby, że programiści zakładaliby, że wszyscy używali kalendarza gregoriańskiego. Lepiej, w umyśle Apple, podzielić manipulację momentem w czasie ('NSDate') z manipulacji kalendarza w świecie rzeczywistym (' NSCalendar' i 'NSDateComponents'.) –
thx za wyjaśnienie, nigdy nie myślał o tym w ten sposób. –