2013-03-13 26 views
5

我试图在单行上打印NSSet,逗号分隔但没有尾随逗号或空格。我怎样才能做到这一点?Objective-C如何在一行上打印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]); 

但由于集合没有索引,我不能做到这一点。

感谢

回答

10

你总是可以让一个数组出一套一套的,就像这样:

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]; 
} 
+0

使用你的循环没有以建设字符串第一和第二要素之间的逗号。 – aqua 2013-03-13 10:17:13

+0

@aqua你试过了吗?它应该在那里。 – dasblinkenlight 2013-03-13 10:25:25

7

获取您所设定的对象作为一个数组,并使用componentsJoinedByString:

NSSet *myset = ....; 
NSString *joinedString = [[myset allObjects] componentsJoinedByString:@", "]; 
相关问题