0
我有一個排序忽略空格
NSArray *foo = @[@"Chicago Hts, IL", @"Chicago Heights, IL", @"Chicago, IL"];
我希望得到一個有序數組這樣一個NSString的NSArray的:
@[@"Chicago, IL", @"Chicago Heights, IL", @"Chicago Hts, IL"];
我用
[foo sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:),
導致在
@[@"Chicago Heights, IL", @"Chicago Hts, IL", @"Chicago, IL"];
這個數組有大約100k條目,所以根據空格分割字符串,並對它進行排序和'未分割'會導致不良的perforamnce。
我意識到Finder以與'localizedCaseInsensitiveCompare'相同的方式排序文件,所以我想我運氣不好。
我傾向於基於第一個字符'a'拆分數組,根據空白處加入字符串,對其進行排序,然後在tableView中將其顯示給用戶,並且如果用戶滾動經過第一個字符結果集,獲取'b'的下一組對象,通過忽略空白空間,排序,'取消加入單詞'並顯示來加入單詞。
雖然這段代碼完美的作品,我轉而使用爲const char和做的焦炭相比,這稍微快一點是,當我在模擬器上運行它(一個char〜 .5到1秒更快)。我也將數組分成塊,所以在任何時候,我都沒有10萬條記錄。感謝您的幫助。 – newDeveloper 2013-03-30 13:23:25