
บทเรียนก่อนหน้านี้ที่เกี่ยวข้องคือ เขียนแอพ iPhone ภาษา Objective-C เขียนไฟล์ Plist ครับ บทเรียนที่แล้วเราจะมีไฟล์ Plist ที่ถูกเขียนขึ้นมาเก็บไว้ใน Simulator Folder เสร็จสรรพ บทเรียนนี้คือการอ่านค่าเจ้าไฟล์ Plist ที่เขียนไว้เมื่อครู่ครับ

สร้าง Single View Application ขึ้นมาใหม่เลย สำหรับอ่านไฟล์ Plist นี้ แก้ไข ViewController.m ตามนี้ครับ

เริ่มต้น เราจะทำการตรวจสอบว่า เราพบไฟล์ดังกล่าวนี้อยู่หรือเปล่าเราจะใช้คำสั่งในการตรวจสอบต่อไปนี้
NSFileManager *fileManager = [NSFileManager defaultManager];
if([fileManager fileExistsAtPath:filePath]){
NSLog(@"Exist");
}else{
NSLog(@"Not Exist");
}
ถ้าพบไฟล์ ก็ให้บอกเราว่า “Exist” ถ้าไม่พบก็จะเตือนบอกเราว่า “Not Exist” ครับ
ไฟล์ ViewController.m จะมี code ทั้งหมดเป็นแบบนี้
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingString:@".plist"];
NSLog(@"Directory: %@", filePath);
NSFileManager *fileManager = [NSFileManager defaultManager];
if([fileManager fileExistsAtPath:filePath]){
NSLog(@"Exist");
}else{
NSLog(@"Not Exist");
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
ทำการ Run ตัวแอพพลิเคชันของเราเพื่อตรวจสอบหน่อยว่าเจอหรือไม่?

ต่อมาให้เราทำการอ่านค่าจากไฟล์ขึ้นมาครับ โดยคำสั่งนี้
NSArray *array=[[NSArray alloc] initWithContentsOfFile:filePath];
for (int i=0; i<2; i++){
NSLog(@"%@",array[i]);
}
นำไปวางที่ตำแหน่งดังตัวอย่างครับ
if([fileManager fileExistsAtPath:filePath]){
NSLog(@"Exist");
NSArray *array=[[NSArray alloc] initWithContentsOfFile:filePath];
for (int i=0; i<2; i++){
NSLog(@"%@",array[i]);
}
}else{
NSLog(@"Not Exist");
}
ลอง Run ตัวแอพพลิเคชันของเราใหม่อีกครั้งแล้วดูที่ console ใหม่ครับว่า ค่ามาหรือเปล่า

หวังว่าคงไม่อยากเกินไป Source code ก็ไม่ต้องมีหรอกครับ ง่ายแค่นี้เอง ถ้า Copy Code ไปวางแล้วยัง Error ก็พิจารณาตัวเองใหม่นะครับ 😀




