Не можете просто да поставите базата данни SQLite в контейнера iCloud, защото може да се повреди. (Докато модифицирате SQLite DB, временните файлове се създават и преименуват, така че ако процесът на синхронизиране започне да копира тези файлове, ще получите повредена база данни.)
Ако не искате да се преместите в Core Data, можете да направите това, което Core Data прави: да съхранявате вашата база данни в папката с документи и да съхранявате регистър на транзакциите в контейнера iCould. Всеки път, когато промените базата данни, вие добавяте тези промени към лог файл, така че можете да ги възпроизведете и да направите еквивалентни промени на други устройства.
Това става доста сложно: освен правилната логика на дневник/отговор, ще искате да обедините излишните промени и периодично да свивате дневника в пълно копие на базата данни.
Може да ви е по-лесно да разработите решение, ако можете да използвате познанията за вашето приложение (Core Data трябва да реши проблема в общия случай). Например, можете да запазвате фактури като отделни файлове в облачния контейнер (текст, списък със свойства, XML, JSON, каквото и да е), като ги записвате при промени в базата данни и импортирате само такива, ако системата ви каже, че са създадени или променени.
В обобщение, вашият избор е или да мигрирате към Core Data, или да напишете сами решение за синхронизиране. Кое от тях е най-добро зависи от подробностите на вашето приложение.
person
benzado
schedule
15.11.2011