2013-05-05 74 views
-7

我有两个字符串。这个字符串是不相等的,但如果其他语句总是说是。iOS 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 in my parse database。 在if else语句中,我的正确位置在哪里?

+4

你需要退后一步,学习语言的基础知识。 '='运算符是赋值运算符。要比较两个对象,您需要使用'isEqual:'方法。在两个'NSString'对象的情况下,使用'isEqualToString:'。 – rmaddy 2013-05-05 21:34:08

+0

@Salieh - 一旦您的问题得到解答,请不要使用“谢谢”评论删除或覆盖您的问题,因为任何其他人都将找到类似问题的答案,并且不会看到您的原始问题。 – Tommy 2013-05-05 22:07:05

+0

@Tommy我提出了一个编辑来恢复原始内容,但版主说这是不合适的,所以如果萨列赫做了他所做的事情似乎没有问题。 – 2013-05-05 22:07:50

回答

3
if ((dateString = asd)) 

这里你分配到asddateString,你用一个单一的=
==进行比较。

但由于NSString实例是指针,因此不能使用==来比较字符串值。
用途:

if([ str1 isEqualToString: str2 ]) 

话虽这么说,我觉得你应该花一些时间来学习一些Objective-C的基础知识...

1

=不是测试平等的操作符。

==测试是否相等,但由于您使用的是指针,这仍然不正确。

看到这个答案的详细(Checking for equality in Objective-C),但你需要使用这个测试:

if([dateString isEqualToString:asd])