2013-03-13 27 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:@", "]; 
相關問題