Saat ini saya menyiapkan server web yang saya komunikasikan melalui SOAP dengan aplikasi iPhone saya. Saya mengembalikan string yang berisi GUID dan ketika saya mencoba membandingkan ini dengan string lain, saya mendapatkan beberapa hasil yang aneh.
Mengapa ini tidak menyala? Tentunya kedua senar itu cocok?
NSString *myString = @"hello world";
if(myString == @"hello world")
return;
objective-c
nsstring
ingh.am
sumber
sumber
Jawaban:
Gunakan
-isEqualToString:
metode ini untuk membandingkan nilai dua string. Menggunakan==
operator C hanya akan membandingkan alamat objek.if ([category isEqualToString:@"Some String"]) { // Do stuff... }
sumber
Anda dapat menggunakan perbandingan case-sensitive atau case-sensitive, tergantung apa yang Anda butuhkan. Peka huruf besar-kecil seperti ini:
if ([category isEqualToString:@"Some String"]) { // Both strings are equal without respect to their case. }
Peka huruf besar / kecil seperti ini:
if ([category compare:@"Some String" options:NSCaseInsensitiveSearch] == NSOrderedSame) { // Both strings are equal with respect to their case. }
sumber
Anda dapat membandingkan string dengan fungsi di bawah ini.
NSString *first = @"abc"; NSString *second = @"abc"; NSString *third = [[NSString alloc] initWithString:@"abc"]; NSLog(@"%d", (second == third)) NSLog(@"%d", (first == second)); NSLog(@"%d", [first isEqualToString:second]); NSLog(@"%d", [first isEqualToString:third]); Output will be :- 0 1 1 1
sumber