2011-08-23 33 views
7

Cần giúp đỡ để sắp xếp NSArray chứa AAO (chars Thụy Điển) Tôi đang sử dụng cho thời điểmSắp xếp NSArray chứa AAO

[keyArray addObjectsFromArray:[[names allKeys]sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]]; 

Nhưng đây là loại A A A Ö

+3

thử sử dụng 'localizedCompare:' cho bộ chọn so sánh. – Eimantas

+0

Sự cố với thứ tự sắp xếp là gì? Nó có vẻ ổn với tôi như một người nói tiếng Thụy Điển. – Richard

+0

@Richard Wikipedia cho biết thứ tự là A-Z, Å, Ä, Ö – Jilouc

Trả lời

5

Câu hỏi này cũng tương tự như người tôi đã trả lời ở đây Sort NSArray of NSStrings like Addressbook on iphone sort. Bạn cần phải thực hiện tìm kiếm không phân biệt dấu phụ.

NSArray *array = [NSArray arrayWithObjects:@"aar", @"åäö", @"aao", nil]; 

NSArray *sorted = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { 
    return [(NSString*)obj1 compare:obj2 options:NSDiacriticInsensitiveSearch|NSCaseInsensitiveSearch]; 
}]; 

Lưu ý: sortedArrayUsingComparator: yêu cầu iOS 4.0 trở lên. Đối với iOS < 4.0, hãy sử dụng sortedArrayUsingSelector:.

+0

nhờ localizedCompare: đã giải quyết được vấn đề của tôi :) – Sebastian

0

Là nhận xét bên dưới câu hỏi và trạng thái câu trả lời; [NSString localizedCompare:] là cách tốt nhất để có được các từ với åäö được sắp xếp đúng cách.

Khi tôi hiểu nó NSDiacriticInsensitiveSearch đối xử với å và ä như a và ö là o và đó không phải là điều bạn muốn khi phân loại thụy điển.

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