2013-08-21 37 views
0

我有一堆保存nsuserdefault需要寫入的參數(確切地說20輛車)。我想知道什麼是寫這個最好的方法。我按順序編號,因爲我相信for循環是合適的(不太確定)。下面的代碼代表了我正在嘗試做的一個片段。Neater的方式來寫所有這些參數

  NSString *emailBody=[NSString        
     stringWithFormat:@"%@, %@, %@",[[NSUserDefaults   
     standardUserDefaults]stringForKey:@"Car1"],[[NSUserDefaults 
     standardUserDefaults]stringForKey:@"Car2"],[[NSUserDefaults 
     standardUserDefaults]stringForKey:@"Car3"]]; 

回答

2

沒有理由保存20個單獨的項目。只需將它們放在一個數組中並使用setObject:forKey:存儲數組。然後您可以使用stringArrayForKey:(或arrayForKey:或甚至objectForKey:)將它們全部作爲數組取回。

一旦你有一個數組,創建一個逗號分隔的列表,非常容易:

NSString *emailBody = [array componentsJoinedByString:@", "]; 

如果你必須將它們存儲爲20個項目的兼容性,我仍然會拉出來的NSUserDefaults,並把它們放在一個數組在實際使用之前。

0

稍微整潔:

NSMutableString *emailBody = [[NSMutableString alloc] init]; 
for (unsigned i = 1; i <= 20; i++) { 
    if (i > 1) 
     [emailBody appendString:@", "]; 
    [emailBody appendString:[[NSUserDefaults standardUserDefaults] 
     stringForKey:[StringWithFormat:@"Car%d", i]]]; 
} 
0

只需使用一個for循環,這樣的事情。

NSMutableArray *a = [NSMutableArray array]; 
for (int i=1;i<21;i++) 
{ 
    [a addObject:[NSString stringWithFormat:@"Car%d", i]]; 
} 

然後,只需將數組放入一個字符串。

相關問題