但是這對真機不管用,因為在真機環境下,App在Xcode中的Resources文件夾都是不可寫的.所以我們要在App第一次運行時將需要修改且長久保存的數據放到Document目錄下:
//在Document目錄中初始化地圖數據文件,因為該目錄下文件可寫且可以持久保存
+(void)initDataFile{
NSString *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,
YES)[0];
//取得目標文件路徑
sMapInfoInDocPath = [docPath stringByAppendingPathComponent:@"MapInfo.plist"];
NSFileManager *fm = [NSFileManager defaultManager];
//如果目標文件不存在說明是App第一次運行,需要將相關可修改數據文件拷貝至目標路徑.
if (![fm fileExistsAtPath:sMapInfoInDocPath]) {
NSError *error = nil;
//取得源文件路徑
NSString *srcPath = [[NSBundle mainBundle] pathForResource:MAP_INFO_FILE ofType:@"plist"];
if (![fm copyItemAtPath:srcPath toPath:sMapInfoInDocPath error:&error]) {
CCLOG(@"ERR:copy file failed:%@",error);
}
}
}
注意當刪除一個App後,該App先前存放在Document目錄下的所有文件都會被刪除.