2011-01-09 3 views
0

Я пишу приложение Cocoa Mac, в котором используется IKImageBrowserView. Когда я вызываю следующее:IKImageBrowserView "--ImageKit Ошибка: reloadData, вызываемый в не основной теме"

[imageBrowserView reloadData]; 

Отладчик Консоль печатает это:

--ImageKit Error: reloadData called in non main thread 

Я попытался поместить метод reloadData в другом методе и затем вызвать следующую:

[self performSelectorOnMainThread:@selector(reloadMyView) withObject:nil waitUntilDone:NO]; 

Но я все равно получаю ту же ошибку ImageKit. Есть идеи?

ответ

1

** FIXED **

Причина была комбинацией использования привязок для заполнения моего IKImageBrowserView от NSArrayController, и NSOperation, который называется экономить на своем собственном NSManagedObjectContext после заполнения обновлений.

Я имел Notification наблюдатель от когда контекст в NSOperation сохранен, так что я мог тогда mergeChangesFromContextDidSaveNotification к моему основному контексту потока, но мне нужен, чтобы выполнить это на MainThread. NSArrayController имеет автоматическиPreparesContent установлен на YES, который "также регистрируется как наблюдатель в контексте управляемого объекта". Так как слияние было выполнено из Уведомления, это выполнялось в том же отдельном потоке, что и NSOperation, и в результате NSArrayController снова готовил его содержимое в отдельном потоке, а затем обновлял IKImageBrowserView снова в отдельном потоке, который вызвало ошибку/предупреждение.

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

  • Нет связанных вопросов^_^