Я создал plist, который хранит все данные пользователя в моем приложении, такие как количество монет, лучший результат, некоторые вещи из внутреннего магазина и так далее. И вот, за 1 день до релиза, я понял, что после обновления приложения все данные пользователя будут потеряны. Я прав?данные plist после обновления
Если я не так, как работают плиты? Скажем, в версии 1.0 моего приложения у меня есть plist, состоящий из количества пользовательских монет. Затем я решаю добавить количество бриллиантов на мой plist, так что plist в версии 2.0 состоит из монет И бриллиантов. Значение по умолчанию для монет и бриллиантов равно 0.
Итак, пользователь загружает 1 версию, теперь у него 0 монет. Он играет какое-то время и зарабатывает 100 монет. Затем он обновляет приложение до версии 2. Что происходит в этом случае? Будет ли он удален, новый добавлен вместо этого, и у пользователя будут 0 монеты по умолчанию и 0 бриллиантов? Или он не будет обновляться вообще? Или у него все еще будет 100 монет, но 0 бриллиантов?
В целом, я просто хочу знать, как другие разработчики хранят данные пользователя локально на устройстве, не используя внешние базы данных и так далее.
P.S. Вот как я создаю мой PLIST:
var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! String
var path = paths.stringByAppendingPathComponent("UserInfo.plist")
var data = NSMutableDictionary(contentsOfFile: path)
var fileManager = NSFileManager.defaultManager()
if (!(fileManager.fileExistsAtPath(path)))
{
var bundle : NSString = NSBundle.mainBundle().pathForResource("UserInfo", ofType: "plist")!
fileManager.copyItemAtPath(bundle as String, toPath: path, error:nil)
}
Спасибо за ваш ответ. Ну, из-за этого факта в ситуации, о которой я рассказывал ранее, у пользователя по-прежнему будет 100 монет после обновления, но он получит исключение, когда я попытаюсь вызвать бриллианты из моего кода, потому что plist не был затронут и он не включает алмазы? Как обновить мой plist? – Garch
Это не то, что вы просили. Вы спросили, могут ли изменения привести к потере данных, и я считаю, что правильно ответил. Я сказал вам, что сохраненные файлы остаются неизменными, хотя обновление. Конечно, если _you_, то перезапишите свой файл с плохими данными или если вы не сохраните необходимые данные, это проблема в вашей логике. Но это ваша ошибка, а не ошибка обновления. Логика того, когда вы создаете/сохраняете свои файлы, - это другое дело. Если у вас есть новый/другой вопрос, задайте новый вопрос! – matt
На самом деле это было частью моего вопроса. Но я понял. Спасибо за ваш ответ. – Garch