Проблема в том, как вы читаете в массиве.Если вы замените код, который присваивает LineCount
на
NSArray * LinesCount = [NSArray arrayWithObjects:@"aaa", @"bbb", @"ccc", @"ddd", @"eee", nil];
, вы увидите, что двоичный поиск работает нормально.
В вашем коде есть две проблемы:
- Разделитель строк, вероятно, просто "\ n", если файл был создан в Mac OS X
- Ваш массив будет содержать оставшийся "" как последний элемент, поэтому требование к упорядочению в соответствии с CFArrayBSearchValuesбольше не удовлетворен.
Например:
NSLog(@"%@", [@"one\ntwo\n" componentsSeparatedByString:@"\n"]);
выход (обратите внимание на последний пустой элемент):
2011-09-29 16:52:33.024 a.out[4019:707] (
one,
two,
""
)