เขียนไฟล์ (plist) บน iOS


วอนผู้รู้ครับ ผิดตรงไหนเนี่ย ตก case ‘Fail to write to file’ ตลอดเลย

    NSArray *writeTest = [NSArray arrayWithObjects:
                          [NSNumber numberWithInt:1],
                          @"Test1",
                          @"Test2"
                          @"Test3", 
                          nil];
    if ([writeTest writeToFile:@"test/nextTest.plist" atomically:YES ]) {
        NSArray *readTest = [NSArray arrayWithContentsOfFile:@"test/nextTest.plist"];
        NSLog(@"%@", readTest);
    } else {
        NSLog(@"Fail to write to file");
    }

edit

แก้ได้แล้วครับ ต้องเป็นแบบนี้ครับ ขอบคุณ @sitdh
เนื่องจากมันเป็น iOS แล้ว Directory ที่เขียนลงไปได้ต้องเป็น Document Directory ของแต่ละ App เท่านั้น

- (NSString *)documentDir {
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    
}
- (NSString *) filePath {
    return [[self documentDir] stringByAppendingPathComponent:@"test.plist"];
}
- (void) saveData {
    NSArray *writeTest = [NSArray arrayWithObjects:
                          [NSNumber numberWithInt:1],
                          @"Test1",
                          @"Test2",
                          @"Test3", 
                          nil];
    if ([writeTest writeToFile:[self filePath]atomically:YES ]) {
        NSArray *readArray = [NSArray arrayWithContentsOfFile:[self filePath]];
        NSLog(@"%@", readArray);
    } else {
        NSLog(@"Fail to write to file");
    }
    
}
Advertisements

4 thoughts on “เขียนไฟล์ (plist) บน iOS

      • เหตุผลเพิ่มเติมนะครับ

        ในโครงสร้างของ app จะเห็นว่ามันมีหลายไดเรคทอรี่ ซึ่งแต่ละไดเรคทอรี่ก็มีประเภทการใช้งานต่างกันออกไป สาเหตุที่โดนบังคับให้เขียนข้อมูลใหม่เข้าไปภายใต้ Documents ก็เพราะจะเป็นเพียงไดเรคทอรี่เดียวที่ iTunes จะทำ backup ให้ครับ

      • เหตุผลเพิ่มเติมนะครับ

        ในโครงสร้างของ app จะเห็นว่ามันมีหลายไดเรคทอรี่ ซึ่งแต่ละไดเรคทอรี่ก็มีประเภทการใช้งานต่างกันออกไป สาเหตุที่โดนบังคับให้เขียนข้อมูลใหม่เข้าไปภายใต้ Documents ก็เพราะจะเป็นเพียงไดเรคทอรี่เดียวที่ iTunes จะทำ backup ให้ครับ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s