Vì vậy, tôi có một nsmutablearray với một loạt các đối tượng trong đó. Tôi muốn tạo một chuỗi phân tách bằng dấu phẩy của giá trị id của từng đối tượng.Mục tiêu-C Cách đơn giản nhất để tạo chuỗi phân cách bằng dấu phẩy từ một mảng đối tượng
Trả lời
Sử dụng phương thức thể hiện NSArray
componentsJoinedByString:
.
- (NSString *)componentsJoinedByString:(NSString *)separator
.
Ví dụ:
NSString *joinedComponents = [array componentsJoinedByString:@","];
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 != ""
}
Đ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
@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
@ 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
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:@","];
}
Swift :)
var commaSeparatedString = arrayOfEntities.joinWithSeparator(",")
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
@handiansom Đó là năm 2012. –
Tôi cũng nhận thấy.^^ – handiansom
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
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
Tôi sẽ thử nó và xem – Jhorra