Ленивая загрузка основных данных в UITableView - awakeFromFetch вызывается в разных точках устройства и симулятора - PullRequest
2 голосов
/ 26 августа 2011

У меня проблема с данными ядра, которые на устройстве и в симуляторе выглядят по-разному.

У меня очень простой UITableView, основанный на модели данных ядра, есть минимальные изменения по сравнению спредоставленный яблоком шаблон.

На симуляторе все отлично работает.На устройстве у меня есть правильное количество ячеек в табличном представлении, чтобы соответствовать количеству управляемых объектов в базе данных, но сами ячейки не содержат данных.У меня есть несколько меток в ячейке, которые являются производными от временных свойств управляемого объекта, и они являются пустыми.

У меня есть операторы NSLog для метода awakeFromFetch моего подкласса управляемых объектов и метода cellForRowAtIndexPath моего делегата представления таблицы.

В симуляторе awakeFromFetch вызывается перед cellForRowAtIndexPath, поэтому все в порядке,На устройстве все наоборот, поэтому ячейки остаются пустыми, пока я не заставлю их снова отображаться, прокручивая вверх и вниз.

Почему это происходит, и какие изменения я должен сделать, чтобы предотвратить это?Я могу видеть, является ли управляемый объект ошибкой во время кода конфигурации ячейки, но как я могу заставить ошибку сработать?Или я должен делать что-то еще?

Ответы [ 2 ]

1 голос
/ 29 августа 2011

Я решил эту проблему, обеспечив настройку своей ячейки, сначала вызвав постоянное свойство управляемого объекта.Это вызывает ошибку и заполняет остальные поля.Временные свойства заполнялись в awakeFromFetch, и он не вызывается до тех пор, пока не сработает ошибка.Почему это отличается на устройстве и симуляторе, я не знаю.

0 голосов
/ 26 августа 2011

Это очевидно, что вам нужно прокручивать вверх и вниз для отображения значения ячейки. Так как на iphone память слишком мала, чтобы иметь производительность ...

Может быть одно из решений - использовать многопоточность или GCD (Grand Central Dispatch). Используйте многопоточность, а затем уведомите вашу таблицу, что данные загружены в память и готовы к отображению в табличном представлении, а затем обновите таблицу ...

Для справки перейдите по этой ссылке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...