Основные данные, создающие NSPredicate для NSNumber с использованием чего-то похожего на BEGINSWITH - PullRequest
0 голосов
/ 11 октября 2011

Я пытаюсь получить результаты из текста панели поиска в Базовых данных для свойства, которое является NSNumber.В частности, получение объектов из магазина, чей идентификационный номер «BEGINSWITH» в тексте поиска.

Например, если пользователь вводит число «1» в поле поиска, мой извлеченный запрос возвращает объекты, содержащие 112, 14, 19, 100, 149, 1324 и т. Д.

К сожалению, я также реализую сортировку по таблице, поэтому при сортировке по этому номеру, если он представлен в виде строки в модели данных,сортировка становится: 1,10,100,2,20,200 вместо 1,2,10,20,100,200.

Как я могу получить здесь лучшее из обоих миров, чтобы я мог искать в строке-сортировке-да, но сортировать по порядку номеров?Нужно ли создавать два свойства в модели данных, строку и числовое представление тех же данных?

Любая помощь будет высоко ценится.

Rgds, Felipe

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Я предлагаю вам два поля: фактический идентификатор, который является числом, и затем searchIdentifier, который является строкой. Поиск по строке, сортировка по номеру.

0 голосов
/ 17 июня 2014

Хотя это нигде не упоминается в документации Apple, Like также работает с nsnumber.

Например,

[NSPredicate predicateWithFormat:@"numberField like '%@*'", searchTerm]

работает, где numberField является основным атрибутом данных типаNSNumber.При этом выбираются все записи, где значение числового поля начинается с searchTerm.

...