2012-10-16 32 views
1

我無法使用字符串值從數組中保存所選項目。任何想法有什麼不對?比較id對象和NSString

它我比較代碼:

if(self.detailItem){ 
    [WebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:[self.detailItem description] ofType:@"html"]isDirectory:NO]]]; 
    NSString *value = (NSString *)self.detailItem; 
    NSString *value1 = (NSString *)@"DecideVectorVPiramidi"; 
    value=[NSString stringWithFormat:@"%@", value]; 
    value1=[NSString stringWithFormat:@"%@", value1]; 
    if (value == value1) { 
     WebView.scalesPageToFit=YES; 
    } 

這是陣列碼:

類型的 detailItem
case 1: 
      switch (self.nomberInSection) { 
       case 0: 
        self.detailViewController.detailItem =[NSString stringWithFormat:@"%@", [DecideOfZakusPath objectAtIndex:indexPath.row]]; 
        break; 
      } 
break; 

id

的錯誤,我查

回答

7

您需要使用isEqualToString==運營商將僅供參考。

這意味着你必須做

if ([value isEqualToString:value1]) 
{ 
    ... 

你兩個字符串將指向兩個不同的存儲位置,以及==將比較這兩個存儲位置,因此評估爲NOisEqualToString,or isEqual是用於使用字符串相等性規則進行字符串比較的方法(即,如果兩個字符串包含相同的字符,則它們被認爲是相等的)。

這可能有點違反直覺。在Objective-C中,操作符重載是不可能的。在許多其他語言中,可以重載操作符,以便可以使用相等運算符完成內置和自定義類的值比較。