2014-03-14 2 views
2

Требуется 5 секунд для загрузки 8425 элементов на последнем iMac.«Контроллер объекта», Режим сущности: выборка медленно на Mavericks

enter image description here

Я не знаю, что еще добавить, чтобы предоставить вам больше информации. Я загружаю элементы для выпадающего списка NSComboBox.

Я тестировал на Snow Leopard и Mountain Lion, и он отлично работает. Пробовал несколько машин, он отлично работает на всех osx, за исключением Mavericks. Такие же файлы сборки и базы данных.

ответ

1

Я предполагаю, что NSComboBox загружает все элементы один за другим, а CoreData должен делать обратный переход на диск каждый раз. Вы должны проверить эту ситуацию с помощью инструментов, чтобы точно знать, что происходит.

Попробуйте выполнить предварительную выборку всех элементов перед их показом. Вы можете использовать -[NSFetchRequest returnsObjectsAsFaults:] свойство, установленное на NO во время такой выборки.

Вот отрывок из моего проекта, который делает предварительную выборку:

if (! didPrefetch) 
{ 
    didPrefetch = YES; 

    // Your fetch request that will load all items 
    NSFetchRequest* fetchRequest = ... ; 

    // If you need to prefetch some relationships 
    fetchRequest.relationshipKeyPathsForPrefetching = @[...]; 

    // This forces objects to fault info row cache 
    fetchRequest.returnsObjectsAsFaults = NO; 

    [managedObjectContext executeFetchRequest:fetchRequest error:&error]; 
} 
+0

на инструментах я могу видеть, что существует высокая выборки продолжительность для конкретного объекта. Какую еще полезную информацию я мог бы получить от нее? Я использую инструмент «CoreData Fetches». Вы предлагаете установить свойства программно? Тогда я не могу полагаться только на привязку построителя интерфейса? – aneuryzm

+0

Кстати, я также попытался установить свойство «Использовать ленивый выбор», без успеха. – aneuryzm

+0

Я думаю, вам не нужно избавляться от привязок, но вам нужно сделать предварительную выборку ** до того, как ** NSComboBox попытается загрузить данные через привязки. – pointum

Смежные вопросы