diff options
Diffstat (limited to 'Frameworks/PostgresKit/Source/PGPostgresTimeTZ.m')
-rw-r--r-- | Frameworks/PostgresKit/Source/PGPostgresTimeTZ.m | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/Frameworks/PostgresKit/Source/PGPostgresTimeTZ.m b/Frameworks/PostgresKit/Source/PGPostgresTimeTZ.m index d2d91898..c4f14eb5 100644 --- a/Frameworks/PostgresKit/Source/PGPostgresTimeTZ.m +++ b/Frameworks/PostgresKit/Source/PGPostgresTimeTZ.m @@ -57,9 +57,10 @@ - (id)initWithDate:(NSDate *)date timeZoneGMTOffset:(NSUInteger)offset { if ((self = [super init])) { - _date = date; _hasDate = NO; - _timeZone = [NSTimeZone timeZoneForSecondsFromGMT:offset]; + + [self setDate:date]; + [self setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:offset]]; } return self; @@ -67,6 +68,20 @@ #pragma mark - +- (NSUInteger)hash +{ + return [_date hash] ^ [_timeZone hash]; +} + +- (BOOL)isEqual:(id)object +{ + if (object == self) return YES; + + if (!object || ![object isKindOfClass:[self class]]) return NO; + + return [_date isEqualToDate:[(PGPostgresTimeTZ *)object date]] && [_timeZone isEqualToTimeZone:[(PGPostgresTimeTZ *)object timeZone]]; +} + - (NSString *)description { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; @@ -81,4 +96,14 @@ return [NSString stringWithFormat:@"%@ %@", output, [_timeZone abbreviation]]; } +#pragma mark - + +- (void)dealloc +{ + if (_date) [_date release], _date = nil; + if (_timeZone) [_timeZone release], _timeZone = nil; + + [super dealloc]; +} + @end |