Как сохранить данные приложения Xcode - PullRequest
4 голосов
/ 25 февраля 2011

Я много дней искал, как сохранить данные моих приложений.Я нашел кое-что, но это было очень сложно и плохо объяснено.Мне нужно, чтобы, когда я полностью закрывал свои приложения, все данные, которые я вводил в текстовое поле, все еще были там, когда я снова открывал свои приложения.Я попробовал учебник, но это позволило мне сохранить только около 8 текстовых полей, и мне нужно было сэкономить тысячи, я запускаю Objective-C и Xcode, поэтому, если кто-то захочет дать мне ответ, пожалуйста, сделайте его очень точным.

Ответы [ 3 ]

5 голосов
/ 25 февраля 2011

Хорошо, я бы предложил поместить все данные из ваших текстовых полей в массив и сохранить их в файл, а затем загрузить их при повторном открытии приложения.

Первое, что вам нужно, это сохранить файл. Эта функция создаст для вас.

-(NSString*) saveFilePath{
NSString* path = [NSString stringWithFormat:@"%@%@",
                  [[NSBundle mainBundle] resourcePath],
                  @"myfilename.plist"];
return path;}

Теперь, когда это сделано, вам нужно создать массив сохранения. Надеюсь, у вас уже есть тысячи текстовых полей, встроенных в какой-то массив. Если нет, то это будет болезненный процесс, независимо от того, как вы справитесь с этим. Но в любом случае ... (Здесь labelArray будет массивом всех ваших текстовых полей / меток / и т. Д.)

NSMutableArray* myArray = [[NSMutableArray alloc]init];
int i = 0;
while(i < labelArray.count){
   [myArray addObject: [labelArray objectAtIndex: i].text];
   i ++;
}
[myArray writeToFile:[self saveFilePath] atomically:YES];
[myArray release];

И код загрузки будет выглядеть примерно так:

NSMutableArray* myArray = [[NSMutableArray arrayWithContentsOfFile:[self saveFilePath]]retain];

Тогда вы просто загрузите данные обратно в массив текстовых полей.

Надеюсь, это поможет.

2 голосов
/ 25 февраля 2011

Похоже, что архитектура вашего приложения может быть неэффективной, если вы планируете сохранять тысячи данных текстовых полей в доли секунды, которую вы получаете, когда ваше приложение закрывается.Вероятно, было бы лучше сохранить их, когда пользователь вводит данные, а не ждать, чтобы сохранить все данные сразу.

0 голосов
/ 25 февраля 2011

Чтобы получить путь, по которому вы собираетесь писать (или читать!), Вы делаете следующее:

NSString *writableDBPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"MyFile.extension"];

А затем используйте метод наподобие «writeToFile: automically:» NSString или NSDictionary и т. Д. Для записи в путь.

...