Objective-Cで文字列の比較を行う方法のメモ
(iOS 6で試してます。)
ポイント
・isEqual
・==演算子は注意
サンプル
@implementation ViewController
– (void)viewDidLoad
{
[super viewDidLoad];
// パターンを準備
NSString *original = @”Objective C.”;
NSString *compareZ = @”Objective C.”;
NSString *compareA = @”Objective”;
NSString *compareB = @”iOS.”;
// original, compareZ と同じ文字列に
compareA = [compareA stringByAppendingString:@” C.”];
//比較
// 1. ポインタ比較 –>
// compareZとAは定義のタイミングを変えている
// TRUE
// (※ 上記のように@””を同一にすると、同じポインタになるみたい。)
BOOL check0 = (original == compareZ);
// FALSE
BOOL check1 = (original == compareA);
// 2. 文字列比較 –> TRUE
BOOL check2 = [original isEqual:compareA];
// 3. 文字列比較 –> TRUE
BOOL check3 = [original isEqualToString:compareA];
// 4. 文字列比較 –> FALSE
BOOL check4 = [original isEqual:compareB];
//結果 を出力
NSLog(check0 ? @”TRUE” : @”FALSE”);
NSLog(check1 ? @”TRUE” : @”FALSE”);
NSLog(check2 ? @”TRUE” : @”FALSE”);
NSLog(check3 ? @”TRUE” : @”FALSE”);
NSLog(check4 ? @”TRUE” : @”FALSE”);
}
@end