5

Tôi sắp xếp một mảng bằng cách sử dụng localizedStandardCompare:, cung cấp cho tôi các đối tượng được sắp xếp theo đúng thứ tự đã bản địa hóa. Bây giờ tôi muốn sử dụng chúng trong các index cho một UITableView, có nghĩa là tôi cần phải tạo ra các tiêu đề phần. Kể từ khi localizedStandardCompare: bản địa hóa chúng, một chuỗi bắt đầu bằng "Æ" được sắp xếp với các đối tượng A. Vì vậy, nếu tôi lặp lại mảng và tạo một phần cho mỗi chữ cái đầu tiên, tôi sẽ nhận được các phần "A", "Æ", "A", "B", v.v. Có cách nào để lấy chuỗi hay không được sử dụng để so sánh, hoặc ít nhất là thi đua nó? Tôi đã thử chuyển đổi với các mã hóa khác nhau, nhưng không có gì sẽ trả lại cho tôi chữ "A" cho "Æ".lấy chuỗi được sử dụng bởi localizedStandardCompare khi nó đã so sánh

Bất kỳ đề xuất nào khác về cách tạo tiêu đề mục cho chuỗi được bản địa hóa?

+2

Tôi không chắc chắn làm thế nào để thực hiện điều này, nhưng bạn đã kiểm tra ra 'UILocalizedIndexedCollation'? Liên kết: http://developer.apple.com/library/ios/#documentation/iPhone/Reference/UILocalizedIndexedCollation_Class/UILocalizedIndexedCollation.html –

+0

Cảm ơn! Tôi chưa bao giờ để ý đến lớp đó trước đây và nó trông giống như những gì tôi cần. –

+3

Nếu điều này phù hợp với bạn, vui lòng đăng câu trả lời và đánh dấu câu trả lời để câu hỏi này không xuất hiện và những người khác có cùng vấn đề có thể tìm giải pháp dễ dàng hơn. – Greg

Trả lời

0

Bạn có thể sử dụng phương thức CFStringTransform để nhận chuỗi đã sử dụng.

Ví dụ: sử dụng giá trị kCFStringTransformToLatin để lấy chuỗi latin đơn giản từ chuỗi đầu vào.

Điều này sẽ không thực sự hoạt động chính xác như phương pháp localizedStandardCompare:, nhưng bạn có thể sử dụng biến đổi chuỗi để tạo thuộc tính bổ sung cho đối tượng mà bạn sử dụng để sắp xếp thực tế.

Có rất nhiều nguồn lực tốt về chủ đề này: