首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

plist资料操作

2012-07-16 
plist文件操作??//寫入- (void)writePlist :(NSString *)name :(NSString *)password{? ? //取得檔案路徑?

plist文件操作

?

?

//寫入

- (void)writePlist :(NSString *)name :(NSString *)password

{

? ? //取得檔案路徑

? ? NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

? ? NSString *documentsDirectory = [paths objectAtIndex:0];

? ? //documentsDirectory為路徑,可健入以下程式碼以顯示其路徑資訊

? ? //NSLog(@"%@", documentsDirectory);

?

? ? //在Finder中顯示隐藏文件

? ? //打開終端機輸入

? ? //defaults write com.apple.finder AppleShowAllFiles -bool true

? ? //KillAll Finder

? ? //相反

? ? //defaults write com.apple.finder AppleShowAllFiles -bool false

? ? //KillAll Finder

?

? ? //plist命名

? ? NSString *filePath = [documentsDirectory stringByAppendingString:@"/data.plist"];

? ? NSFileManager *fileManager = [NSFileManager defaultManager];

? ? NSMutableDictionary *plistDict;

?

? ? //檢查檔案是否存在,return false則創建

? ? if ([fileManager fileExistsAtPath: filePath])

? ? {

? ? ? ? plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];

? ? }else{

? ? ? ? plistDict = [[NSMutableDictionary alloc] init];

? ? }

?

? ? //先查看是否已有obj在plist內

? ? if ([plistDict objectForKey:name])

? ? {

? ? ? ? newUserLabel.text = [NSString stringWithFormat:@"%@ is already in list", name];

? ? }

? ? else

? ? {

? ? ? ? //向動態字典追加參數

? ? ? ? [plistDict setObject:password forKey:name];

? ? ? ? //把剛追加之參數寫入file

? ? ? ? if ([plistDict writeToFile:filePath atomically: YES]) {

? ? ? ? ? ? newUserLabel.text = [NSString stringWithFormat:@"User %@ create success!", name];

? ? ? ? ? ? NSLog(@"writePlist success");

? ? ? ? } else {

? ? ? ? ? ? NSLog(@"writePlist fail");

? ? ? ? }

? ? }

? ? //釋放記憶體

? ? [plistDict release];

}

?

//讀取

- (void)readPlist :(NSString *)name :(NSString *)password

{

? ? NSString *checkPassword;

?

? ? //取得檔案路徑

? ? NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

? ? NSString *documentsDirectory = [paths objectAtIndex:0];

? ? NSString *filePath = [documentsDirectory stringByAppendingString:@"/data.plist"];

? ? NSFileManager *fileManager = [NSFileManager defaultManager];

? ? NSMutableDictionary *plistDict;

? ? //檢查檔案是否存在

? ? if ([fileManager fileExistsAtPath: filePath])

? ? {

? ? ? ? NSLog(@"File here.");

? ? ? ? //存在的話把plist中的資料取出並寫入動態字典plistDict

? ? ? ? plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];

? ? }else{

? ? ? ? NSLog(@"File not here.");

? ? ? ? plistDict = [[NSMutableDictionary alloc] init];

? ? }

?

? ? //使用objectForKey以關鍵字取得其value

? ? checkPassword = [plistDict objectForKey:name];

?

? ? //使用isEqualToString比對輸入

? ? if ([checkPassword isEqualToString:password])

? ? {

? ? ? ? loginLabel.text = [NSString stringWithFormat:@"%@ login ok!", name];

? ? }

? ? else

? ? {

? ? ? ? loginLabel.text = [NSString stringWithFormat:@"登入名稱或密碼錯誤!"];?

? ? }

? ? [plistDict release];

}

热点排行