2012-12-03 54 views
1

下面的代碼得到我想要在NSLog中的結果,但有必須是一個更簡單的方法來做到這一點?我也得到'格式字符串不是字符串'錯誤,仍然可以建立好。連接字符串和整數

NSString *levelstring1 = @"Level "; 
NSString *levelstring2 = [NSString stringWithFormat:@"%d", levelscore]; 
NSString *levelstring3 = @" ("; 
NSString *levelstring4 = [NSString stringWithFormat:@"%d", xpscore]; 
NSString *levelstring5 = @"/"; 
NSString *levelstring6 = [NSString stringWithFormat:@"%d", (levelscore*(levelscore+1)*100)]; 
NSString *levelstring7 = @")"; 

NSString *levelstringfinal = [[[[[[levelstring1 stringByAppendingFormat:levelstring2]stringByAppendingFormat:levelstring3]stringByAppendingFormat:levelstring4]stringByAppendingFormat:levelstring5]stringByAppendingFormat:levelstring6]stringByAppendingFormat:levelstring7]; 

NSLog(@"Level is %@",levelstringfinal); 

最終的結果看起來是這樣的:1級(50/100)。

回答

3

你可以將它們組合成類似:

NSString *levelstringfinal = [NSString stringWithFormat:@"Level %d (%d/%d)", levelscore, xpscore, (levelscore*(levelscore+1)*100)]; 

你得到的警告是因爲編譯器不能檢查變量的內容,而用於字符串也可以匹配一些佔位符和變量一致性程度。

(即使你必須建立在碎片串,最後一行將得到更好的使用stringByAppendingString而不是stringByAppendingFormat因爲這些不再是格式說明。)

+0

完美,謝謝! –