0

書き込みが必要な保存済みの nsuserdefault パラメータがたくさんあります (正確には 20 台の車)。これを書くのに最もきちんとした方法は何だろうと思っています。forループが適切であると信じているため(あまり確信が持てません)、順番に番号を付けます。以下のコードは、私がやろうとしていることのスニペットを表しています。

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

3 に答える 3

2

20 個の個別のアイテムを保存する理由はありません。それらを配列に入れて、配列を で保存するだけsetObject:forKey:です。stringArrayForKey:次に、 (またはarrayForKey:単に)を使用して、それらをすべて配列としてフェッチできますobjectForKey:

配列を取得したら、カンマ区切りのリストを作成するのは非常に簡単です。

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

互換性のために 20 個のアイテムとして保存する必要がある場合でも、NSUserDefaults実際に使用する前にそれらを取り出して配列に入れます。

于 2013-08-21T15:14:30.620 に答える
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]]];
}
于 2013-08-21T14:56:08.253 に答える
0

forこのようなループを使用するだけです。

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

次に、配列を文字列に入れます。

于 2013-08-21T14:56:16.687 に答える