1

Plistから保存してロードしようとするのは非常に簡単なことですが、うまくいきません。誰かが私のコードを調べて、何が間違っているのか教えていただければ幸いです。

- (IBAction)testSave:(id)sender {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *plistLocation = [documentsDirectory stringByAppendingPathComponent:@"data.plist"];
    NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistLocation];

    [plistDict setObject:@"test" forKey:@"test"];
    [plistDict writeToFile:plistLocation atomically: YES];
}

- (IBAction)testLoad:(id)sender {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *plistLocation = [documentsDirectory stringByAppendingPathComponent:@"data.plist"];
    NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistLocation];

    testField.text = [plistDict objectForKey:@"test"];
}

ありがとう!

4

2 に答える 2

0

To write the File : You are making mistake here

- (IBAction)testSave:(id)sender {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *plistLocation = [documentsDirectory stringByAppendingPathComponent:@"data.plist"];

    // Declare Dictionary Object
    NSMutableDictionary* plistDict;

    // Check if plist file exist or not, if EXIST load data from it otherwise create new
    if([[NSFileManager defaultManager] fileExistsAtPath:plistLocation])
        plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistLocation];
    else
        plistDict = [[NSMutableDictionary alloc] init];

    [plistDict setObject:@"test" forKey:@"test"];
    [plistDict writeToFile:plistLocation atomically: YES];
}

Your Code for Reading is Correctそれを試してみてください。幸運を。

于 2013-10-15T04:26:02.880 に答える
0

ドキュメント ディレクトリに data.plist があるかどうかを確認します。それを確認するには、plistLocation に格納されている値を見つけます。パスをたどって、実際に data.plist があるかどうかを確認します。

それが役に立てば幸い!!!

于 2013-10-15T04:41:30.810 に答える