загрузка данных в UITextField не работает - PullRequest
0 голосов
/ 26 июля 2011

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

            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSMutableString stringWithFormat:@"%@.plist",file]];

    NSDictionary *loadDict;

    if([[NSFileManager defaultManager] fileExistsAtPath:filePath]){
        NSLog(@"hey its there!");
        loadDict = [[NSDictionary alloc] initWithContentsOfFile:filePath];

        [numSidesBox setText:[loadDict valueForKey:@"numSides"]];
        NSLog([loadDict valueForKey:@"numSides"]);
        [numSidesBox setText:[loadDict valueForKey:@"numDice"]];
        NSLog([loadDict valueForKey:@"numDice"]);
        [numSidesBox setText:[loadDict valueForKey:@"modifier"]];
        NSLog([loadDict valueForKey:@"modifier"]);
        [numSidesBox setText:[loadDict valueForKey:@"numRolls"]];
        NSLog([loadDict valueForKey:@"numRolls"]);
    }
    else{
        NSLog(@"hey its not =(");
    }

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Вы сказали «TextFields» во множественном числе, но вы используете только один UITextField (?).

[numSidesBox setText:[loadDict valueForKey:@"numSides"]];
NSLog([loadDict valueForKey:@"numSides"]);
[numSidesBox setText:[loadDict valueForKey:@"numDice"]];
NSLog([loadDict valueForKey:@"numDice"]);
[numSidesBox setText:[loadDict valueForKey:@"modifier"]];
NSLog([loadDict valueForKey:@"modifier"]);
[numSidesBox setText:[loadDict valueForKey:@"numRolls"]];
NSLog([loadDict valueForKey:@"numRolls"]);

Только numSidesBox? Это правильно?

1 голос
/ 26 июля 2011

Похоже, что вы устанавливаете текст одного и того же текстового поля снова и снова. Таким образом, numSidesBox всегда должен содержать текст [loadDict valueForKey:@"numRolls"]. Я предполагаю, что у вас более одного текстового поля, поэтому просто замените numSidesBox на другие переменные, такие как numDiceBox или как вы их называете.

P.S. Я бы также предложил использовать objectForKey: вместо valueForKey:.

...