2012-04-26 36 views

Trả lời

150

Sử dụng phương thức thể hiện NSArraycomponentsJoinedByString:.

- (NSString *)componentsJoinedByString:(NSString *)separator.

Ví dụ:

NSString *joinedComponents = [array componentsJoinedByString:@","];

+0

Vì vậy, các đối tượng trong mảng của tôi có 4 hoặc 5 khách sạn , làm thế nào để tôi nói nó chỉ tham gia các giá trị id? – Jhorra

+1

Nếu bạn chỉ cần đăng nhập một trong các đối tượng của bạn, bạn sẽ nhận được gì? Chỉ các giá trị id? Nếu vậy, đó là những gì bạn sẽ nhận được với componentsJoinedBuString: Hãy thử nó và xem. – rdelmar

+0

Tôi sẽ thử nó và xem – Jhorra

7

Nếu bạn đang tìm kiếm các giải pháp tương tự trong Swift, bạn có thể sử dụng này:

var array:Array<String> = ["string1", "string2", "string3"] 
var commaSeperatedString = ", ".join(array) // Results in string1, string2, string3 

Để đảm bảo mảng của bạn không chứa giá trị nil, bạn có thể sử dụng bộ lọc:

array = array.filter { (stringValue) -> Bool in 
    return stringValue != nil && stringValue != "" 
} 
+0

Điều này dường như không hoạt động đối với NSMutableArray trong Swift. Tìm kiếm Google vẫn chưa tiết lộ câu trả lời. – ultrageek

+0

@Twan Cảm ơn bạn, câu trả lời của bạn là (gần như) chính xác những gì tôi đang tìm kiếm ... Hầu hết, bởi vì tôi cần ghép các chuỗi tùy chọn, một số có thể là nil (và vì vậy tôi không muốn ghép chúng), nhưng giải pháp này không chấp nhận tùy chọn String, nó đòi hỏi phải unwrap họ ... có thể bạn đã có một vấn đề tương tự trong quá khứ, nếu như vậy bạn có thể giúp tôi? – cdf1982

+0

@ cdf1982 Tôi đã cập nhật câu trả lời của mình. Bạn có thể làm điều này bằng cách sử dụng phương pháp lọc. – Antoine

3

Tạo String từ mảng:

-(NSString *)convertToCommaSeparatedFromArray:(NSArray*)array{ 
    return [array componentsJoinedByString:@","]; 
} 

Tạo mảng từ String:

-(NSArray *)convertToArrayFromCommaSeparated:(NSString*)string{ 
    return [string componentsSeparatedByString:@","]; 
} 
2

Swift :)

var commaSeparatedString = arrayOfEntities.joinWithSeparator(",") 
+1

Câu hỏi chỉ định một ngôn ngữ lập trình. Hãy xem xét việc thay đổi nó thành mục tiêu - c. – handiansom

+0

@handiansom Đó là năm 2012. –

+0

Tôi cũng nhận thấy.^^ – handiansom

Các vấn đề liên quan