Trong khi thực hiện UISearchBarController
, tôi đang sử dụng [NSString compare:]
bên trong phương thức ủy nhiệm filterContentForSearchText:scope:
để trả về các đối tượng liên quan dựa trên thuộc tính tên của chúng cho kết quả UITableView
khi bạn bắt đầu nhập.Tìm kiếm hoặc so sánh trong một Cụm Grapheme bằng tiếng Hàn
Cho đến nay công trình này rất tuyệt vời bằng tiếng Anh và tiếng Hàn, nhưng điều tôi muốn làm là tìm kiếm trong các cụm ký tự được xác định của NSString
. Điều này chỉ áp dụng cho một ngôn ngữ hữu ích, trong đó tiếng Hàn là một ngôn ngữ.
Bằng tiếng Anh, compare:
trả về kết quả mới sau mỗi chữ cái bạn nhập, nhưng bằng tiếng Hàn, kết quả được tạo khi bạn hoàn thành cụm grapheme được nhận dạng. Tôi muốn có thể tìm kiếm thông qua tài sản tên đối tượng Hàn Quốc của tôi thông qua các yếu tố cá nhân tạo thành một âm tiết.
Có ai có thể làm sáng tỏ cách tiếp cận này không? Tôi chắc chắn rằng nó có một cái gì đó để làm với tìm kiếm thông qua các ký tự UTF16 bằng tay, hoặc bằng cách sử dụng một lớp cấp thấp hơn.
Chúc mừng!
Dưới đây là một ví dụ cụ thể mà chỉ là không làm việc:
`NSString *string1 = @"이";
`NSString *string2 = @"ㅣ";
NSRange resultRange = [[string1 decomposedStringWithCanonicalMapping] rangeOfString: [string2 decomposedStringWithCanonicalMapping] options:(NSLiteralSearch)];
Kết quả luôn luôn là NSNotFound, có hoặc không có decomposedStringWithCanonicalMapping
.
Bất kỳ ý tưởng nào?
Lawrence, thông tin đó thật tuyệt vời. Có những ứng dụng iPhone ở Hàn Quốc dường như làm những gì tôi đã cố gắng; nhưng tôi đoán tôi đã bị sai giả định về cách Hàn Quốc được lưu trữ trong UTF8/16. Cảm ơn câu trả lời của bạn, chắc chắn nó đã làm sáng tỏ một số câu hỏi của tôi. – Jessedc
Cảm ơn sự giúp đỡ của bạn Lawrence, tôi đã chấp nhận câu trả lời của bạn; đó là một bước tiến lớn đúng hướng. – Jessedc