Comparison

1. 構造体 (CGRect, CGPoint, CGRange …)

Equal系の関数がある。
/* CGRect */
bool CGRectEqualToRect (
      CGRect rect1,
      CGRect rect2
);

/* CGPoint */
bool CGPointEqualToPoint (
      CGPoint point1,
      CGPoint point2
);


2. クラス (NSString, UIColor …)

Equal系のメソッドがあったり、他のfameworkの関数を利用したり。
/* NSString */
- (BOOL)isEqualToString:(NSString *)aString


/* UIColor */
- bool CGColorEqualToColor (
          CGColorRef color1,
          CGColorRef color2
);
// 使用例
CGColorEqualToColor(color1.CGColor, color2.CGColor);

3. クラス (NSIndexPath, NSNumber …)

数値を扱ったり大小が比較出来るクラスの場合、NSComparisonResultを使用する比較メソッドがあります。(※ 更にoptionやrangeを指定出来るものもあります)
/* NSIndexPath */
- (NSComparisonResult)compare:(NSIndexPath *)indexPath
// 使用例    
NSComparisonResult result = [indexPath1 compare:indexPath2];
if (result == NSOrderedAscending) {
    NSLog(@"indexPath1はindexPath2より小さい");
} else if (result == NSOrderedDescending) {
    NSLog(@"indexPath1はindexPath2より大きい");
} else { // result == NSOrderedSame
    NSLog(@"indexPath1といndexPath2は等しい");
}
最終更新:2015年08月17日 10:38