可能重複:
Why is my string potentially unsecure in my iOS application?格式字符串不是一個字符串(可能不安全)
新的編譯器警告,因爲升級的XCode 4.6:
最小的例子展示兩者的警告最後行:
for (NSUInteger i = 0; i < 10; i++) {
NSString *res = [testInstance generate:i];
NSString *desc = [NSString stringWithFormat:@"TestData: %d", i];
STAssertNotNil(res, desc);
STAssertNotEquals(@"", res, desc);
}
我看着它關注此警告其他的問題,但他們不必要地使用stringWithFormat:
程序員幹 - 在這裏我想有一個動態的斷言描述每次迭代而改變,但不是每個檢查。
我可以將格式字符串和數據傳遞給斷言,但我必須獨立維護描述。
如果我需要在描述的格式中使用日誌消息或斷言調用之前,我該如何避免此警告?
需要注意的是,'stringWithFormat'將在每次迭代中被評估,而如果您將格式字符串放入斷言中,則只有斷言失敗時纔會評估它。 –