0

読み込んで読み込みました:

 NSFileManager *fileManager = [NSFileManager defaultManager];

if (![fileManager fileExistsAtPath: path]) //4
{
    NSString *bundle = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"]; //5

    [fileManager copyItemAtPath:bundle toPath: path error:&error]; //6
}

//load in text fields.
NSMutableDictionary *savedData = [[NSMutableDictionary alloc] initWithContentsOfFile: path];

nameField.text = [[savedData objectForKey:@"name"] stringValue];
locationTextField.text = [[savedData objectForKey:@"location"] stringValue];
sectorTextField.text = [[savedData objectForKey:@"sector"] stringValue];

ボタンクリックで書き込み:

    - (IBAction)writingButton:(id)sender
{
    NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile: path];

    //[data setObject:[NSNumber numberWithInt:value] forKey:@"value"];
    [data setObject:[NSString stringWithString:nameField.text] forKey:@"name"];
    [data setObject:[NSString stringWithString:locationTextField.text] forKey:@"location"];
    [data setObject:[NSString stringWithString:sectorTextField.text] forKey:@"sector"];
}

plist ファイル:

ここに画像の説明を入力

エラー:

2012-09-04 17:03:40.360 app[4849:c07] -[__NSCFString stringValue]: インスタンス 0x6aa38f0 に送信された認識されないセレクター 2012-09-04 17:03:40.362 app[4849:c07] *** アプリの終了期限キャッチされない例外 'NSInvalidArgumentException' へ、理由: '-[__NSCFString stringValue]: 認識されないセレクターがインスタンス 0x6aa38f0 に送信されました'

何か案は?乾杯。

4

1 に答える 1

4

ディクショナリは NSString オブジェクトを直接格納します - と呼ばれる (存在しない) メソッドを呼び出す必要はありません- stringValue。簡単に書く

nameField.text = [savedData objectForKey:@"name"];

等々。

(なぜこのメソッド呼び出しが必要だったと思いますか?)

于 2012-09-04T16:43:20.733 に答える