Как я могу сохранить данные, хранящиеся в plist, из UITextField при перезапуске приложения? - PullRequest
2 голосов
/ 21 апреля 2010

Я использую plist для хранения данных, введенных в поля UITextFields. Но при перезапуске приложения все ранее введенные данные были удалены. Как я могу сохранить данные в Plist. У меня есть UITableView и при касании ячейки появляется представление с двумя UITextFields. nameField и descriptionField. Я сохранил данные таким образом.

Мой код.

-(void)save:(id)sender
{

    indexOfDataArray = temp;

    NSString *string1 = [[NSString alloc]init];
    NSString *string2 = [[NSString alloc]init];
    string1 = nameField.text;
    string2 = descriptionField.text;
    NSDictionary *myDict = [[NSDictionary alloc] initWithObjectsAndKeys:string2, string1, nil];
    //NSDictionary *myDict = [[NSDictionary alloc] initWithObjectsAndKeys:@"value", string2, @"key", string1, @"index", [NSNumber numberWithInt:indexOfDataArray], nil];

    [myArray addObject:myDict];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"tableVideoData.plist"]; 

    [myArray writeToFile:path atomically:YES];

    UIAlertView *alertMesage = [[UIAlertView alloc] initWithTitle: @"Save Alert" message:@"The data entered is saved" delegate:nil cancelButtonTitle:@"cancel" otherButtonTitles:nil] ;
    [alertMesage show];
    [alertMesage release];
}

Путь к файлу

/Users/srikanth/Library/Application Support/iPhone Simulator/User/Applications/31DEFEE7-A468-44BD-B044-53BEA3391C1A/Documents

Но проблема в том, что каждый раз, когда я перезагружаю приложение, данные создаются в новом файле plist в новой папке. Итак, как я могу хранить данные в одном списке?

Спасибо.

1 Ответ

1 голос
/ 21 апреля 2010

Ошибка вызвана тем, что массив слишком мал; вы пытаетесь вставить объект по индексу, который находится за верхней границей массива.

Если вы хотите сохранить индекс и данные, сохраните индекс в словаре:

NSDictionary *myDict = [[NSDictionary alloc] initWithObjectsAndKeys:@"value", string2, @"key", string1, @"index", [NSNumber numberWithInt:indexOfDataArray], nil];
[myArray addObject:myDict];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...