В настоящее время я работаю с большим NSDictionary
называется listOfAllWords
, содержащее слово, и соответствующий счет, как, например:Фильтрация NSDictionary прогрессивно возрастает по мере один типов по значению
WORD : SCORE
-------------
hello : 100
have : 90
help : 80
held : 70
hot : 60
hemp : 50
...
Моя цель состоит в том, как пользователь введите до 3-х предложений из списка, в соответствии с их оценкой .
Например, если пользователь только набирается «час», 3 рекомендации будут «привет», «есть» и помощь «в таком порядке. Тем не менее, если пользователь ввел» Хель . "уже, то рекомендации будут„привет“,„помощь“и„Ручной“
на основе подобной парадигмы фильтрации UITableViews, способ фильтровать бы сделать что-то вроде этого:
for (word* food in [listOfAllWords allKeys]){
NSRange nameRange = [word rangeOfString:userInput options:NSCaseInsensitiveSearch];
if(nameRange.location != NSNotFound
{
[filteredData addObject:word];
}
}
Однако проблема, с которой я сталкиваюсь, заключается в том, как включить фильтр для включения счет компонент, а также, чтобы он включал рекомендации, оцененные их оценками. Помощь очень ценится.
Я бы предположил, что вы создаете объект со свойствами 'word' и' score'. Добавьте экземпляры этих объектов в свой массив 'filterData', а затем вы можете отсортировать массив по' score' убыванию и взять первые 3 элемента – Paulw11
Это лучше решить с помощью дерева radix. (Но, конечно, это требует работы.) –