我试图在一行上打印出NSSet,以逗号分隔,但没有尾部逗号或空格。我怎样才能做到这一点?

我知道这适用于数组:

    NSMutableString *outputStringArray = [[NSMutableString alloc] init];
    NSMutableArray *myArray = [[NSMutableArray alloc] initWithCapacity:10];

    for (int k = 0; k < [myArray count]; k++) {
        [outputStringArray appendFormat:@"%@, ", [myArray objectAtIndex:k]];
    }
    NSLog(@"%@", [outputStringArray substringToIndex:[outputStringArray length] - 2]);

但是由于集合没有索引,所以我不能这样做。

谢谢

最佳答案

您总是可以从集合中制作一个数组,如下所示:

NSArray *myArray = [mySet allObjects];

之后,您可以使用componentsJoinedByString:获得您的字符串:
NSString *str = [myArray componentsJoinedByString:@", "];

当然,您可以通过类似于您帖子中的循环的简单循环来达到相同的效果:
BOOL isFirst = YES;
for (id element in mySet) {
    if (!isFirst) {
        [outputStringArray appendString:@", "];
    } else {
        isFirst = NO;
    }
    [outputStringArray appendFormat:@"%@", element];
}

关于Objective-C如何在一行上打印NSSet(无尾随逗号/空格),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15382089/

10-12 00:19