私は次のクラスを持っています:
#import "Period.h"
@implementation Period
...
- (BOOL)isEqualTo:(id)object {
return [self isEqual:object];
}
- (BOOL)isEqual:(id)object {
if (object == self) {
return YES;
}
if ([[object beginDate] hash] == [[self beginDate] hash] &&
[[object endDate] hash] == [[self endDate] hash]) {
return YES;
}
return NO;
}
...
@end
また、 を使用して記述された次のテストOCUnit
:
Period *period;
NSDate *beginDate;
NSDate *endDate;
- (void)setUp {
beginDate = [NSDate dateWithString:@"2011-02-25"];
endDate = [NSDate dateWithString:@"2011-03-25"];
period = [[Period alloc] initWithBeginDate:beginDate
endDate:endDate];
}
- (void)testEndDateShouldBeGreaterOrEqualThanBeginDate {
Period *newPeriod = [[Period alloc] initWithBeginDate:beginDate
endDate:beginDate];
STAssertEqualObjects(beginDate, [newPeriod beginDate], @"Begin dates are different");
STAssertEqualObjects(endDate, [newPeriod endDate], @"End dates are different");
}
以前はSTAssertEquals
代わりに使用していましたが、メソッド onSTAssertEqualObjects
を呼び出していませんでした。isEqual
Period
私は2つのことを理解したいだけです:
- これら2つの方法の違いは何ですか?
isEqual
とはどう違いisEqualTo
ますか?