Во-первых, как писал @paulbailey, проверьте, проиндексировано ли Barcode
.
Но, если у вас столько записей, и если ваша запись имеет только два свойства (штрих-код и обозначение), и еслитолько запрашивать со стороны штрих-кода и возвращать обозначенную сторону, использование CoreData может быть излишним.
CoreData предоставляет вам множество объектно-ориентированных средств с сохранением на диске, но, конечно, это сопряжено со штрафом.
Возможно, вам лучше вообще отказаться от CoreData и использоватьsqLite
прямо.Для этого есть хорошая облегченная оболочка Objective-C под названием FMDB, см. здесь .
Если вы хотите придерживаться CoreData, один из способов сделать это лучше - выбрать в фоновом режиме.и показать результат в основном потоке, как описано в этого документа Apple .Таким образом, пользовательский интерфейс не останавливается при поиске в базе данных.