У меня есть то, что я воспринимаю как относительно сложную модель данных, с несколькими отношениями «многие ко многим», которые необходимы для того, чтобы получить нужные функции. Без ICloud все работает отлично: низкая загрузка процессора, использование памяти как правило, около 15 МБ/с, максимум 30.Проблемы памяти памяти icloud core
Я реализовал голые кости SYNCING ICloud Ядро данных следующие удивительно полезный учебник Тима Roadley нашла здесь http://timroadley.com/2012/04/03/core-data-in-icloud/
Первый вопрос: при первом открытии приложения иногда наблюдается отставание, при котором данные не могут быть доступны. Я делаю
NSFetchRequest
и возвращаю пустой массив. Через несколько секунд я могу получить данные.Почему это происходит? Я думал, что с iCloud включен в Xcode 5, два хранилища данных были сделаны, один для локального использования и один для использования iCloud? не должен ли доступ к локальному магазину?
Я получил вокруг первого бита, имея «портала» контроллер представления, так что отставание может (в большинстве случаев) можно преодолеть (иногда вы видите пустой TVC .. не рад)
Второй вопрос, и более насущный: через несколько секунд (обычно около 15) что-то происходит в фоновом потоке, загрузка процессора увеличивается до 99%, а память идет с 10 до 100 мб/с. Он остается таким высоким: он не поднимается (и не падает), и он не падает на оставшуюся часть использования (я имею в виду, по крайней мере, 2 часа, когда он постоянно работал). Без грохота! просто любопытное взаимодействие интерфейса.
Почему это происходит и как я могу его решить?
У меня нет большого понимания того, как работает синхронизация iCloud; какие-то журналы транзакций сделаны, хранятся как plists, и отправляются куда-то, и что-то происходит. Я предполагаю, что журналы транзакций, которые у меня есть, действительно большие, возможно, из-за нескольких отношений «многие ко многим», которые у меня есть? Этот вопрос предполагает, как таковые (не существует никакого решения его проблемы, и я также не имею все возрастающее использование памяти: шахта останавливается в определенной точке): Core Data with iCloud causing low memory warnings and crashes, memory usage constantly grows
мысль: - Если бы это было журналы транзакций, не следует ли их удалять в какой-то момент? скажем, после того, как журнал был загружен в icloud? почему он просто сидит там, занимая пространство? - Есть ли способ определить время, в котором выполняется синхронизация? или вручную удалить журнал транзакций? Кто-нибудь испытал это/решил?
Похоже, пришло время, чтобы открыть приложение инструменты. – nhgrif