作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 if
例程,它将一个值与其他两个值进行比较(使用 || 运算符),如果语句的计算结果为 YES
,则值 firstActivity.stopTime
应该从 null
更改为当前时间 [NSDate date]
。
然而,它似乎评估为 NO
,导致没有变化,即使我的 NSLog
读数(和我自己的观察)似乎确认它必须评估为 YES
。
代码如下:
-(void) compareActivity
{
NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];
TimedActivity *firstActivity = [TimedActivity MR_findFirstOrderedByAttribute:@"startTime" ascending:NO];
NSLog(@"1 Currently timed activity is %@",firstActivity.name);
NSLog(@"2 thisSpec.activityOfInterest is %@",self.thisSpec.activityOfInterest);
NSLog(@"3 Currently timed activity stopTime is %@",firstActivity.stopTime);
NSLog(@"4 thisSpec.benchmarkActivity is %@",self.thisSpec.benchmarkActivity);
if (firstActivity.name == self.thisSpec.activityOfInterest || firstActivity.name == self.thisSpec.benchmarkActivity)
{
firstActivity.stopTime = [NSDate date];
[localContext MR_saveToPersistentStoreAndWait];
NSLog(@"5 Currently timed activity stopTime is %@",firstActivity.stopTime);
}
NSLog(@"6 Currently timed activity stopTime is %@",firstActivity.stopTime);
}
这是控制台的读数:
2014-04-28 22:15:06.588 WMDGx[5683:a0b] 1 Currently timed activity is Test 1
2014-04-28 22:15:06.588 WMDGx[5683:a0b] 2 thisSpec.activityOfInterest is Test 1
2014-04-28 22:15:06.589 WMDGx[5683:a0b] 3 Currently timed activity stopTime is (null)
2014-04-28 22:15:06.589 WMDGx[5683:a0b] 4 thisSpec.benchmarkActivity is Test 2
2014-04-28 22:15:06.589 WMDGx[5683:a0b] 6 Currently timed activity stopTime is (null)
有什么想法或建议吗?
谢谢!
更新:
我这样更新了我的代码:
if ([firstActivity.name isEqualToString:self.thisSpec.activityOfInterest] || [firstActivity.name isEqualToString:self.thisSpec.benchmarkActivity])
{
firstActivity.stopTime = [NSDate date];
[localContext MR_saveToPersistentStoreAndWait];
NSLog(@"5 Currently timed activity stopTime is %@",firstActivity.stopTime);
}
现在它完美运行了!有趣的是,我以前曾经遇到过同样的问题,并且实际上尝试过更改代码,但这次我显然做错了什么,导致我认为这是错误的方法。
非常感谢!
最佳答案
你不能使用==
来比较对象指针,你需要使用isEqual:
比较对象
[firstActivity.name isEqual: self.thisSpec.activityOfInterest] || [firstActivity.name isEqual: self.thisSpec.benchmarkActivity]
如果它们是NSString
,你可以使用isEqualToString:
关于ios - "If"语句之谜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23356339/
我是一名优秀的程序员,十分优秀!