stringByAppendingString不连接

tur*_*rbo 3 objective-c ios

我正在尝试获取一个字符串数组并将每个项目放入字符串格式.我写了一个方法来执行此操作,因为我需要将列出的数组值连接到另一个字符串.由于某种原因,我无法正确列出数组值,返回空字符串.

- (NSString*)listParameters:(NSArray*)params
{
NSString *outputList = @"";

if (params) {
    for (int i=0; i<[params count]; i++) {
        NSLog(@"%@",[params objectAtIndex:i]);
        [outputList stringByAppendingString:[params objectAtIndex:i]];
        if (i < ([params count] - 1)) {
            [outputList stringByAppendingString:@", "];
        }
    }
}
NSLog(@"outputList: %@", outputList);
return outputList;
}
Run Code Online (Sandbox Code Playgroud)

第一个日志语句正确返回一个字符串(因此数组中肯定有一个字符串),但第二个日志语句只返回"outputList:".

我尝试将outputList start作为一个不起作用的空字符串.我也试过分配[params objectAtIndex:i]一个字符串然后追加它,也没用.

我觉得我在这里遗漏了一些明显的东西,但是我无法让它发挥作用.

如何将这个字符串数组打印成一个用逗号分隔的单个字符串?

Cod*_*Ray 8

您可能希望使用NSMutableString及其appendString方法.NSString是不可变的.

- (NSString*)listParameters:(NSArray*)params
{
    NSMutableString *outputList = [[NSMutableString alloc] init];

    if (params) {
        for (int i=0; i<[params count]; i++) {
            NSLog(@"%@",[params objectAtIndex:i]);
            [outputList appendString:[params objectAtIndex:i]];
            if (i < ([params count] - 1)) {
                [outputList appendString:@", "];
            }
        }
    }

    NSLog(@"outputList: %@", outputList);
    return outputList;
}
Run Code Online (Sandbox Code Playgroud)