2011-07-25 6 views
0

理由はありませんが、これは単純に機能しません。 plistファイルからいくつかの値をロードし、それらをいくつかのUITextFieldにロードすることになっています。あなたが期待するすべてのものをNSLogsで出力しますが、UITextFieldのテキストは同じではありません。あたかもどこに何を置くかをランダムに選んだかのように思えます。UITextFieldにデータをロードしていません。

  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 =("); 
    } 

答えて

1

同じテキストボックスのテキストを何度も何度も設定しているようです。したがって、numSidesBoxには常に[loadDict valueForKey:@"numRolls"]のテキストを含める必要があります。私はあなたが複数のテキストフィールドを持っていると仮定しますので、numSidesBoxnumDiceBoxのような他の変数に変更してください。

P.S.またvalueForKey:ではなくobjectForKey:を使用することをお勧めします。

+0

申し訳ありません、私のメモリの部分にコピー/ペーストエラーがあり、objectForKeyチップのおかげです。私はそのことを心に留めておきます – user663425

1

あなたは "TextFields"は複数ですが、あなたは1つの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のみですか?それが正しいか?

+0

ああああああああああああああああああああああああああああああああああああ、コピー/ペーストはメモリ義務のビットが付属しているようです;)あなたの時間を無駄にして申し訳ありません。ありがとうございました! – user663425

+0

問題はありません。答えを受け入れることを忘れてはいけない(アレックスを受け入れ、私に投票する)彼は最初に答えた。 – Peres

関連する問題