格式化字符串输出的数组项

Zac*_*ham 2 arrays objective-c ios

我正在尝试使用以下内容显示数组中的项:

NSString *alertString = [NSString stringWithFormat:@"%@", path];
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,但是当我显示字符串时,它会以下列方式显示:

(
A,
B,
C,
D
)

有没有办法让它以不同的方式显示,例如所有在一行,没有括号,逗号或行返回,如下所示:

A B C D

mip*_*adi 13

你有几个选择.看起来数组中的对象有一个description方法可以按照你想要的方式打印它们,所以它可能像使用一样简单:

NSString *alertString = [path componentsJoinedByString:@" "];
Run Code Online (Sandbox Code Playgroud)

如果没有,你可以考虑这样的事情:

NSMutableString *s = [NSMutableString string];
[path enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [s appendString:@" "];
    [s appendString:[obj someMethodThatFormatsTheObject]];
}];
NSString *alertString = [NSString stringWithString:s];
Run Code Online (Sandbox Code Playgroud)

甚至:

NSMutableArray *a = [NSMutableArray array];
[path enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [a addObject:[obj sometMethodThatFormatsTheObject]];
}];
NSString *alertString = [a componentsJoinedByString:@" "];
Run Code Online (Sandbox Code Playgroud)


ken*_*ytm 9

如果这path是一个NSArray,您可以使用-componentsJoinedByString:方法将数组中的所有字符串与所需的分隔符连接起来.

NSString* alertString = [path componentsJoinedByString:@" "];
Run Code Online (Sandbox Code Playgroud)