13 EYLÜL 2010, PAZARTESİ
Anlayış NSString karşılaştırma
Her ikisi de aşağıdaki karşılaştırmaları doğru olarak değerlendirin:
1)
@"foo" == @"foo";
2)
NSString *myString1 = @"foo";
NSString *myString2 = @"foo";
myString1 == myString2;
Ancak, kesinlikle NSString
s iki olamaz eşitlik operatörü ile olduğu zamanlar vardır, ve [myString1 isEqualToString:myString2]
yerine gereklidir. Birisi bu biraz ışık tutabilir?
CEVAP
13 EYLÜL 2010, PAZARTESİ
==
işe yaramasının sebebi işaretçi karşılaştırma dolayıdır. Ne zaman seni NSString
sabit @""
, derleyici kullanarak başvuru uniquifies tanımlayın. Aynı sabitler kodunuzda başka yerlerde tanımlandığında, bellekte aynı gerçek konumunu işaret eder.
NSString
örnekleri karşılaştırırken, isEqualToString:
yöntemi kullanmanız gerekir:
NSString *myString1 = @"foo";
NSString *myString2 = @"foo";
NSString *myString3 = [[NSString alloc] initWithString:@"foo"];
NSLog(@"%d", (myString2 == myString3)) //0
NSLog(@"%d", (myString1 == myString2)); //1
NSLog(@"%d", [myString1 isEqualToString:myString2]); //1
NSLog(@"%d", [myString1 isEqualToString:myString3]); //1
[myString3 release];
Bunu Paylaş:
Büyük / küçük harf duyarlı karşılaştır...
nasıl bir NSString üç karakter için?...
NSString için NSDate dönüştürmek...
Nasıl iPhone üzerinde NSString için NS...
Nasıl bir NSString belirli başka bir d...