-7

私は2本の弦を持っています。この文字列は等しくありませんが、if else ステートメントは常に「はい」と言っています。

私のコードはこれらです。

 PFQuery *bilquery = [PFQuery queryWithClassName:@"Bildirim"];
    PFObject *saat = [bilquery getObjectWithId:@"lQTsXaBvuq"];
    NSString *asd = [saat objectForKey:@"gun"]; //asd is 06 or 07.

    NSDate *currDate = [NSDate date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"dd"];
    NSString *dateString = [dateFormatter stringFromDate:currDate];
    int d = [dateString intValue] + 1;
    NSString *dplus1 = [NSString stringWithFormat:@"%d",d];
    if ((dateString = asd)) {
        NSLog(@"YES");
    } else {
       NSLog(@"NO");
       // Bla bla bla

    }

私の解析データベースの NSString asd 。if else ステートメントのどこが正しいですか?

4

2 に答える 2

3
if ((dateString = asd)) 

ここでは、単一の を使用するため、 に割り当てasdています。 との比較が行われます。dateString=
==

ただし、インスタンスはポインターであるため、文字列値の比較にNSStringは使用できません。 使用する:==

if( [ str1 isEqualToString: str2 ] )

そうは言っても、Objective-C の基本を学ぶには時間がかかると思います...

于 2013-05-05T21:35:45.280 に答える
1

=同等性をテストするための演算子ではありません。

==等しいかどうかをテストしますが、ポインターを使用しているため、これはまだ正しくありません。

詳細については、この回答を参照してください ( Checking for equality in Objective-C )。ただし、このテストを使用する必要があります。

if([dateString isEqualToString:asd])

于 2013-05-05T21:35:03.107 に答える