2015-06-14 8 views
0

Я создал 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) 
    } 

ответ

0

И теперь, 1 день до выхода, я понял, что после обновления приложения будут потеряны все данные пользователя. Я прав

Нет, не обязательно. Если данные хранятся в пользовательских настройках по умолчанию или в качестве файла, сохраненного в энергонезависимой области изолированной программной среды приложения (например, в каталоге «Документы»), просто обновление приложения не влияет на нее.

+0

Спасибо за ваш ответ. Ну, из-за этого факта в ситуации, о которой я рассказывал ранее, у пользователя по-прежнему будет 100 монет после обновления, но он получит исключение, когда я попытаюсь вызвать бриллианты из моего кода, потому что plist не был затронут и он не включает алмазы? Как обновить мой plist? – Garch

+0

Это не то, что вы просили. Вы спросили, могут ли изменения привести к потере данных, и я считаю, что правильно ответил. Я сказал вам, что сохраненные файлы остаются неизменными, хотя обновление. Конечно, если _you_, то перезапишите свой файл с плохими данными или если вы не сохраните необходимые данные, это проблема в вашей логике. Но это ваша ошибка, а не ошибка обновления. Логика того, когда вы создаете/сохраняете свои файлы, - это другое дело. Если у вас есть новый/другой вопрос, задайте новый вопрос! – matt

+0

На самом деле это было частью моего вопроса. Но я понял. Спасибо за ваш ответ. – Garch

Смежные вопросы