2015-11-04 93 views
5

我一直使用的格式說明,但今天%d%@但他們一般喜歡在一個教程中,我看到了這些%[email protected]%2$d,不明白他們代表什麼。
這是一個計算器示例,因此他們在本聲明中使用它們:stack = [NSString stringWithFormat:@"%[email protected]%2$d",stack,number];

回答

5

這些數字表示位置參數。格式字符串後面的參數根據它們在參數列表中的位置插入到字符串中。第一個參數進入%1插槽,第二個參數進入%2插槽,依此類推。目的是處理語言的順序/詞/ etc可能會改變你的默認。您不能在運行時更改參數順序,但可以確保參數最終放在字符串中的正確位置。

NSLog(@"%[email protected], %[email protected]", @"Red", @"Blue"); 
NSLog(@"%[email protected], %[email protected]", @"Red", @"Blue"); 

輸出

Red, Blue 
Blue, Red 

注意格式字符串改變,但是參數以相同的順序。

+0

我明白了。但爲什麼我們使用'$'符號? –

+0

這真棒,我從來不知道這個! –

+0

$是位置的一部分。我剛剛離開了我的例子。一種錯字。 – Avi