iOS if else声明不起作用
问题描述:
我有两个字符串。这个字符串是不相等的,但如果其他语句总是说是。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语句中,我的正确位置在哪里?
答
if ((dateString = asd))
这里你分配到asd
dateString
,你用一个单一的=
。
与==
进行比较。
但由于NSString
实例是指针,因此不能使用==
来比较字符串值。
用途:
if([ str1 isEqualToString: str2 ])
话虽这么说,我觉得你应该花一些时间来学习一些Objective-C的基础知识...
答
=
不是测试平等的操作符。
==
测试是否相等,但由于您使用的是指针,这仍然不正确。
看到这个答案的详细(Checking for equality in Objective-C),但你需要使用这个测试:
if([dateString isEqualToString:asd])
你需要退后一步,学习语言的基础知识。 '='运算符是赋值运算符。要比较两个对象,您需要使用'isEqual:'方法。在两个'NSString'对象的情况下,使用'isEqualToString:'。 – rmaddy 2013-05-05 21:34:08
@Salieh - 一旦您的问题得到解答,请不要使用“谢谢”评论删除或覆盖您的问题,因为任何其他人都将找到类似问题的答案,并且不会看到您的原始问题。 – Tommy 2013-05-05 22:07:05
@Tommy我提出了一个编辑来恢复原始内容,但版主说这是不合适的,所以如果萨列赫做了他所做的事情似乎没有问题。 – 2013-05-05 22:07:50