2012-09-11 36 views
2

爲什麼我的NSMutableString潛在不安全?我搜索了這個,但找不到任何東西。爲什麼我的NSSMutableString可能不安全?

int hour = [number intValue]/3600; 

NSMutableString *time = [[NSMutableString alloc] initWithString:@""]; 

if (hour < 9) { 
    [time appendFormat:@"0"]; 
    [time appendFormat:[NSMutableString stringWithFormat:@"%d:", hour]]; 
} 

它有什麼問題?這是我第一次看到這個。

+1

我不確定你在問什麼。如果你解釋爲什麼你認爲這個字符串「可能不安全」,這將有所幫助。 – Jonah

+1

可能的重複[爲什麼我的字符串可能不安全在我的iOS應用程序?](http://stackoverflow.com/questions/9961363/why-is-my-string-potentially-unsecure-in-my-ios-application) –

+0

也類似於:http://stackoverflow.com/questions/5428325/issue-with-code-format-string-is-not-a-string-literal – woz

回答

10

更改此:

[time appendFormat:[NSMutableString stringWithFormat:@"%d:", hour]]; 

要這樣:

[time appendFormat:@"%d:", hour]; 

appendFormat方法需要你通過與格式的字符串,而不是一個NSMutableString。該截圖顯示了它:

enter image description here

+2

這當然是答案。但你可能想解釋一下。 :) –

+0

非常感謝你,我知道現在哪裏是錯誤的; ) –

0

這不回答這個問題要求在這裏,但它看起來像所提供的代碼試圖徹底改造現有的格式字符串選項。

[NSMutableString stringWithFormat:@"%02d:", hour]將打印一個兩位數的整數值和前導零。

+0

的確如此,但我認爲這應該是一個評論,因爲它沒有回答這個問題。 – woz

相關問題