2012-12-31 2 views
1

Я готов к выпуску нового обновления для своего приложения, которое хранит данные в локальном пути пакета, и я хочу, чтобы данные, хранящиеся в этом пути, не удалялись при их обновлении. Может ли это случиться, и о чем я должен следить?При выпуске обновления приложения могут ли мои данные в пучке пакетов меняться или удаляться?

Это код, я использую, чтобы получить путь хранения данных:

// Temporary method variables 
NSError *error; 

// Create a list of paths 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

// Get the path to the apps documents directory from the array 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

// Create a full path to the file 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"FFUserPrefs.plist"]; 

// Access the file manager 
NSFileManager *fileManager = [NSFileManager defaultManager]; 

// Check if the file exists and if not, copy from the bundle path to the documents path 
if (![fileManager fileExistsAtPath:path]) 
{ 
    // Get path to file from bundle directory 
    NSString *pathBundle = [[NSBundle mainBundle] pathForResource:@"FFUserPrefs" ofType:@"plist"]; 

    // Copy pref file to app documents folder 
    [fileManager copyItemAtPath:pathBundle toPath:path error:&error]; 
} 

Я просто боюсь, что данные мои пользователи хранятся в этой директории может быть потеряны, и хочу, чтобы убедиться, он по-прежнему находится после обновления. Единственная причина, по которой я спрашиваю, заключается в том, что после запуска моей новой сборки через xCode на моем телефоне, на которой было установлено приложение для выпуска, оно уничтожило данные и начало работать. Что мне не хватает? Изменяется ли путь пакета приложения между Xcode и release. Любая информация будет принята с благодарностью!

ответ

1

Файлы, хранящиеся в каталоге документов, не будут удалены во время обновления приложения. FFUserPrefs.plist хранится в каталоге документов, поэтому он по-прежнему будет доступен после обновления. Однако файлы, хранящиеся в комплекте приложений ([NSBundle mainBundle]), будут заменены новым пакетом.

+0

Данг, это то, чего я боялся ... тьфу! Любое предложение о том, как я могу сохранить свои данные в /var/mobile/Applications/1111111A-111C-111E-111E-E1111111111/AppName.app/FFUserPrefs.plist, прежде чем он будет заменен и перенесет его в/Documents? – XBXSlagHeap

+0

Разве это не то, что вы делаете с 'copyItemAtPath'? Вы перемещаете файл PLIST из пакета приложений в каталог документов. Затем все данные будут записаны в файл PLIST в каталоге документов. Таким образом, файл в каталоге документов, который содержит все пользовательские данные, будет безопасным, а пустой шаблон в комплекте будет заменен. –

+0

Ты рок! Я просто волнуюсь и даже не читаю собственный код! Один последний вопрос, если вы знаете ... почему я могу потерять данные из моего приложения для выпуска при нажатии новой версии из Xcode? Он вытирает все. – XBXSlagHeap