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 回答