Với NSArray của NSStrings, có cách nào nhanh chóng kết hợp chúng lại với nhau thành một NSString đơn lẻ (với Dấu tách) không?Làm thế nào để tham gia các phần tử NSArray vào một NSString?
Trả lời
NSArray * stuff = /* ... */;
NSString * combinedStuff = [stuff componentsJoinedByString:@"separator"];
Đây là nghịch đảo của -[NSString componentsSeparatedByString:]
.
oh cho tình yêu của verbosity ... – Claudiu
-componentsJoinedByString:
trên NSArray nên thực hiện thủ thuật.
Ngoài ra còn có biến thể này, nếu mảng ban đầu của bạn chứa các đối tượng Key-Value mà từ đó bạn chỉ muốn chọn một tài sản (có thể được tuần tự như một chuỗi):
@implementation NSArray (itertools)
-(NSMutableString *)stringByJoiningOnProperty:(NSString *)property separator:(NSString *)separator
{
NSMutableString *res = [@"" mutableCopy];
BOOL firstTime = YES;
for (NSObject *obj in self)
{
if (!firstTime) {
[res appendString:separator];
}
else{
firstTime = NO;
}
id val = [obj valueForKey:property];
if ([val isKindOfClass:[NSString class]])
{
[res appendString:val];
}
else
{
[res appendString:[val stringValue]];
}
}
return res;
}
@end
Có một rò rỉ bộ nhớ trong mã của bạn, mutableCopy giữ lại đối tượng nó được sao chép, do đó bạn sẽ cần phải làm trở lại [res autorelease] ở cuối. Ngoài ra không có lý do để làm mutablecopy thay vì chỉ làm một mutablestring thẳng ra khỏi con dơi. – thewormsterror
@thewormsterror: quên đề cập đến mã này là dành cho ARC. Ngoài ra, cuộc gọi mutablecopy là quy ước mục tiêu-c hiện đại để tạo phiên bản có thể thay đổi của các đối tượng bằng cách sử dụng @ -syntax (chẳng hạn như [@ [] mutablecopy] cho một nsarray có thể thay đổi). không biết những gì một sự khác biệt nó làm cho hiệu suất khôn ngoan. –
- 1. NSString để NSArray
- 2. Lọc các phần tử chuỗi NSArray
- 3. Làm thế nào để chuyển đổi NSArray thành NSString
- 4. NSArray và NSString
- 5. Dưới ARC, làm cách nào để phát hành các phần tử trong NSArray?
- 6. Làm thế nào để chèn một phần tử mới vào giữa tất cả các phần tử của một mảng Ruby?
- 7. Lambda thêm các phần tử gia tăng vào danh sách
- 8. Làm thế nào để làm một bảng đơn giản tham gia vào Grails
- 9. Làm cách nào để nhận được các phần tử x đầu tiên của NSArray trong Cocoa?
- 10. Làm cách nào để thêm các phần tử vào ProgramElementCollection?
- 11. Tham gia NSArray đối tượng vào một chuỗi, nhưng cần phải có thể chỉ định thuộc tính
- 12. Làm thế nào một mã refactor có thể tham gia vào các ứng dụng lồng nhau?
- 13. Làm thế nào để chèn các phần tử vào một vector?
- 14. Làm thế nào để thêm các phần tử vào một mảng trống trong PHP?
- 15. Tôi làm cách nào để đặt nhiều phần tử canvas vào một phần tử canvas?
- 16. Làm cách nào để điền vào một NSArray động?
- 17. Làm thế nào để tham gia vào n dòng đầu tiên trong một tập tin
- 18. Làm thế nào để thêm các đối tượng vào một NSArray sử dụng cho vòng lặp?
- 19. NSArray riêng vào một danh sách các loại NSString đối tượng
- 20. Làm thế nào để ngẫu nhiên các phần tử enum?
- 21. Làm thế nào để tham gia các liên kết trong Python để có được một chu kỳ?
- 22. Làm thế nào để thêm một phần tử vào một mảng trong Powershell?
- 23. Làm thế nào để tách (chunk) một mảng Ruby thành các phần của phần tử X?
- 24. Làm thế nào để tách một NSArray thành hai phần bằng nhau?
- 25. Làm thế nào để lưu trữ một NSArray trong một NSDictionary?
- 26. Làm thế nào để nối thêm một chuỗi vào mỗi phần tử của một mảng Bash?
- 27. Làm thế nào để làm bên ngoài tham gia vào hai cột trong Pig Latin
- 28. Làm thế nào để làm tham gia vào truy vấn phụ trong AREL trong Rails
- 29. Làm cách nào để thay thế một phần tử?
- 30. Tạo thành phần - Tham gia các thành phần cùng nhau?
tôi phải bị mù! hoặc mệt mỏi. hoặc cả hai ... – hop
Nếu bạn tìm kiếm tài liệu NSString cho tài liệu này, bạn sẽ không bao giờ tìm thấy nó. Của nó trong NSArray! – bolnad