2011-11-23 44 views
0

這裏我想比較2個URL的主機。即使這些主機是相同的,它不會迴應爲什麼!URL主機比較

代碼:

NSURL *url=[NSURL URLWithString:@"http://www.facebook.com/"?ref=logo" ]; 
    NSURL *domain=[ NSURL URLWithString:@"http://www.facebook.com" ]; 

    if ([url host]==[domain host]) { 

     NSLog(@"hosts are matched"); 
    }else { 
     NSLog(@"hosts are not matched!"); 
    } 

回答

3

您需要使用isEqualToString:

NSURL *url=[NSURL URLWithString:@"http://www.facebook.com/?ref=logo" ]; 
NSURL *domain=[ NSURL URLWithString:@"http://www.facebook.com" ]; 

if ([[url host] isEqualToString: [domain host]]) { 
    NSLog(@"hosts are matched"); 
}else { 
    NSLog(@"hosts are not matched!"); 
} 

結果

2011-11-23 11:55:06.182 TestApp [14404:207]主機是匹配

+1

的確如此。執行==比較將檢查這兩個對象在計算機的內存空間中是否物理上相同。在這種情況下,字符串在語義上是相同的,但存儲在不同的地方,因此==將返回false。 「aString isEqualToString:anotherString]將會進行基於字符的比較,這就是你要找的。」 – Warkst

+0

@Warkst,謝謝,我將解釋這一點,但你會更快;) – beryllium