2014-02-19 44 views
-1

我想創建一個簡單的函數,它接受一個int並將其轉換爲一個時間,但是作爲一個字符串,以便我可以在iPhone上顯示它。將變量追加到目標中的字符串C

我無法獲得字符串連接權,這裏是該函數任何意見或幫助將不勝感激。

- (string)countdown(int t) { 
    for(int time = t; time >= 0; time--) { 

     int h = time/3600; 
     int m = (time/60) - (h * 60); 
     int s = time % 60; 

     NSString* timeString = [NSMutableString stringWithFormat: h, @":", m, @":", s]; 

     self.visualTimer.text = timeString; 
    } 
} 
+0

如果可以,請粘貼實際的代碼。如果你在第一次迭代結束時返回,爲什麼你有一個循環? – Wain

+0

請看看NSDateFormatter以及 – Jack

+1

...我不認爲你明白'return'的作用。 – Kevin

回答

3

NSString* timeString = [NSMutableString stringWithFormat: h, @":", m, @":", s]; 

必須

NSString* timeString = [NSMutableString stringWithFormat:@"%02d:%02d:%02d" h,m, s]; 

要知道,你最終循環中的第一次返回tempString。另外,如果您在循環中沒有返回值,那麼您正在使用的構造會倒計時,因此倒計時很快。考慮閱讀並使用NSTimer方法。

編輯:您編輯的代碼將不會產生可見的結果,因爲for循環會阻止runloop,因此UI將不會更新。

+0

謝謝你的擡頭和字符串修復。我如何在不阻止runloop的情況下做到這一點?並且仍然可以在屏幕上更新時間 – zachstarnes

+0

使用'NSTimer'進行研究,該程序允許以每秒或每5秒的規定時間間隔重複一次方法。或谷歌的iOS上的倒計時..應該給你一些結果,你可以開始。 – Volker