NSArray *array = @[@"A", @"B", @"C", @"D"];
NSString *joined = [array componentsJoinedByString:@","];
// 結果:@"A,B,C,D"
NSArray *mixed = @[@1, @2.5, @YES, @"text"];
NSString *joined = [mixed componentsJoinedByString:@" | "];
// 結果:@"1 | 2.5 | 1 | text" (YES -> 1)
// 內部自動調用每個元素的 description 方法
// 手動構建更複雜格式
NSMutableString *builder = [NSMutableString string];
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if (idx > 0) [builder appendString:@", "];
[builder appendFormat:@"[%@]", obj]; // 每個元素包裹 []
}];
NSString *custom = builder;
// 結果:@"[A], [B], [C], [D]"
let array = ["A", "B", "C"]
let joined = array.joined(separator: ",") // "A,B,C"
// 非字串陣列
let mixed = [1, 2.5, true, "text"]
let joined2 = mixed.map(String.init).joined(separator: " | ") // "1 | 2.5 | true | text"
componentsJoinedByString: 是連接陣列元素為字串的**標準、最高效**方法。自動處理元素轉字串、記憶體優化。複雜格式用 NSMutableString + enumerateObjectsUsingBlock: 靈活構建。