2014-01-08 29 views
0

如果用戶從可能的活動列表中連續選擇相同的項目,但我錯過了某些內容,因爲if語句中我剛添加了條件「if」語句來將代碼設置爲「未定義的活動」似乎沒有抓住重複的水龍頭。這裏是有問題的代碼:iOS如果條件似乎不按預期評估。愚蠢的錯誤或有趣的事情?

-(void) refreshData 
{ 
    currentActivity = [TimedActivity MR_findFirstOrderedByAttribute:@"timedActivityTapped" ascending:NO]; 
    NSArray *timedActivityRecords = [TimedActivity MR_findAllSortedBy:@"timedActivityTapped" ascending:YES]; 
    previousActivity = [timedActivityRecords objectAtIndex:timedActivityRecords.count-2]; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init]; 
    [dateFormat setDateFormat: @"MM/dd/yyyy hh:mm:ss"]; 
    self.timeStampLabel.text = [dateFormat stringFromDate:currentActivity.timedActivityTapped]; 
    self.previousActivityLabel.text = previousActivity.timedActivityName; 
    [NSTimer scheduledTimerWithTimeInterval:.5 
            target:self 
            selector:@selector(updateTime) 
            userInfo:nil 
            repeats:YES]; 

    // This if statement should evaluate TRUE if the user taps the same activity consecutively 
    // but control is skipping it as if it is FALSE 
    if (currentActivity.timedActivityName == previousActivity.timedActivityName) 
    { 
     self.currentActivityLabel.text = @"Undefined activity"; 
    } 
    else 
    { 
     self.currentActivityLabel.text = currentActivity.timedActivityName; 
    } 

    [self previousActivityDuration]; 
} 

這裏的活動列表截圖:

enter image description here

而這裏的報表視圖的屏幕截圖,顯示該活動目前正在計時,當它開始,它已經運行了多長時間,該活動先前選擇,而這一活動多久就跑:

enter image description here

正如您所看到的,即使連續兩次選擇「彈吉他」,if語句也無法捕捉它,並將「未定義的活動」替代文本放入「正在進行」標籤中。

我正在使用核心數據和MagicalRecord框架。

有人可以告訴我我要去哪裏嗎?我是一個被承認的nooby,但是直到我遇到這種情況爲止都非常好。

非常感謝您的幫助!

回答

2

嘗試改變if語句

if ([currentActivity.timedActivityName isEqualToString:previousActivity.timedActivityName]) 
{ 
    self.currentActivityLabel.text = @"Undefined activity"; 
} 
else 
{ 
    self.currentActivityLabel.text = currentActivity.timedActivityName; 
} 
+0

完美!謝謝!我可以看到我有更多的工作要做,因爲這只是重命名顯示中的時間間隔。我還必須刪除底層對象,並用具有正確命名屬性的新對象替換它。非常感謝再次!我喜歡你,但我仍然低於水線。 – rattletrap99