2012-10-16 94 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中,操作符重载是不可能的。在许多其他语言中,可以重载操作符,以便可以使用相等运算符完成内置和自定义类的值比较。