2

我无法使用字符串值从数组中保存所选项目。知道有什么问题吗?

它是我的比较代码:

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;
    }

这是数组代码:

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

类型detailItemid

对于错误,我检查了

4

1 回答 1

8

你需要使用isEqualToString. 操作员将==仅通过引用进行比较。

这意味着你必须做

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

您的两个字符串将是指向两个不同内存位置的指针,并且==将比较这两个内存位置,并因此评估为NO. isEqualToString或是用于使用字符串相等规则进行字符串比较的方法(即,如果两个字符串包含相同的字符,则认为它们相等)isEqual

这可能有点违反直觉。在 Objective-C 中,运算符重载是不可能的。在许多其他语言中,可以重载运算符,以便可以使用相等运算符完成内置和自定义类的值比较。

于 2012-10-16T19:59:04.533 回答