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;

タイプはdetailItemですid

エラーについては、チェックしました

4

1 に答える 1

8

を使用する必要がありますisEqualToString。演算子は==参照のみで比較します。

これはあなたがしなければならないことを意味します

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

2つの文字列は、2つの異なるメモリ位置へのポインタになり、==これら2つのメモリ位置を比較して、結果としてに評価されNOます。、、またははisEqualToString、文字列等価規則を使用して文字列比較を行うために使用するメソッドです(つまり、2つの文字列に同じ文字が含まれている場合、それらは等しいと見なされます)。isEqual

これは少し直感に反する可能性があります。Objective-Cでは、演算子のオーバーロードはできません。他の多くの言語では、演算子をオーバーロードして、組み込みクラスとカスタムクラスの値の比較を等式演算子を使用して実行できるようにすることができます。

于 2012-10-16T19:59:04.533 に答える