2010-11-10 57 views
0

我有一個很好的小循環,我卡住了。我害怕我的代碼是盲目的,還是反對盲目?我不能說...我的應用程序在標記爲-->的行上崩潰,我看不出爲什麼。程序崩潰在NSString NSDate轉換

for(int search = 2; search<10; search=search+2) { 
    NSString *arrayTime = [searchArray objectAtIndex:search]; 
    arrayTime = [@" " stringByAppendingString:arrayTime]; 
    NSString *arrayDate = [currentDate stringByAppendingString: arrayTime]; 
    --> NSDate *compareTime = [wholeDateTimeFormat dateFromString: arrayDate]; 
    NSDate *searchCompareTime = [wholeDateTimeFormat dateFromString:searchTime]; 
    NSLog(@"Start: %@ --- search: %@", compareTime, searchCompareTime); 
    float compareResult = [searchCompareTime timeIntervalSinceDate: compareTime]; 
    NSLog(@"compareReslut: %f", compareResult);  
} 

幾點說明:currentDate的格式如下:@"yyyy-MM-dd"。 而wholeDateTimeFormat的格式如下:@"yyyy-MM-dd HH:mm"

然後,我需要將其轉換爲一個NSDate對象;這是失敗的地方,我不知道爲什麼現在。我把這歸咎於我生病的事實。 :) 我沒有建立錯誤,仍然死在我身上。爲什麼? :D我很感激我能得到的所有幫助。

+0

什麼是'wholeDateTimeFormat'? – kennytm 2010-11-10 19:14:54

+0

你是什麼意思「它只是死」?什麼是錯誤? – JeremyP 2010-11-11 10:32:56

回答

4

只需使用NSDateFormatter - 它自動執行所有操作! (我想要更具體 - 但你的代碼讓我有點困惑)。

反正 - 是這樣的:

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease]; 
[df setDateFormat:@"YYYY-MM-dd"]; 
NSDate* date = [df dateFromString:@"2010-11-02"]; 

NSLog(@"Converted date is %@",date); 
+0

@Jeremy P:是的,它只是死亡。它說:[NSCFString dateFromString:]:無法識別的選擇發送到實例0x6a240c0' – 2010-11-12 17:38:01

+0

布拉德:如果你看我的代碼,我承認這裏的代碼視圖是好的,或者它是我的代碼,使它不好。但是我完全按照你所說的去做。這是它崩潰的路線:NSDate * compareTime = [wholeDateTimeFormat dateFromString:arrayDate];我知道arrayDate是一個NSString,如上面的行中聲明的。 wholeDateTimeFormat是在for-loop之外聲明的嗎? – 2010-11-12 17:41:05

+0

什麼是「wholeDateTimeFormat」,什麼是崩潰? – Brad 2010-11-12 17:59:52

0

好了,問題就解決了。 這個問題超出了本代碼的範圍,因爲我懷疑我已經變成了代碼盲目。 我找到了一位朋友來觀看代碼,並花了他2秒的時間來發現問題。

我在for循環之前發佈了dateformatters。

感謝您的所有意見!