Если основные данные не используются, единственный способ сохранить пользовательские данные - сохранить базу данных в каталоге пользователя Documents , а также в каталоге Library .
Documents
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"UserData.sqlite"]];
Library
[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];
Это также единственные каталоги, доступные для записи для вашего приложения.Если вы включили «пустую» базу данных в папку Resources , она будет скопирована в пакет.Оттуда вам нужно проверить, существует ли БД в каталоге Documents , если нет, то скопируйте его из комплекта.
Это единственный способ обеспечить защиту данных при обновлении приложений.
С другой стороны, если пользователь не выполняет резервное копирование своего устройства, удаляет приложение, а затем повторно устанавливает приложение, данные исчезают.
Что касается уведомления пользователя, которое он потеряет, он потеряетих данные, единственное, что подскажет пользователю о потере данных, - это когда он решит удалить приложение с устройства или если вы реализуете какой-то способ уведомления пользователя о любом изменении данных.