Fork me on GitHub

iPhone开发教程之相关的plist文件

创建.plist文件并存储

  NSString *errorDesc; //用来存放错误信息

  NSMutableDictionary *rootObj = [NSMutableDictionary dictionaryWithCapacity:4]; //NSDictionary, NSData等文件可以直接转化为plist文件

  NSDictionary *innerDict;

  NSString *name;

  Player *player;

  NSInteger saveIndex;

  for(int i = 0; i < [playerArray count]; i++) {

  player = nil;

  player = [playerArray objectAtIndex:i];

  if(player == nil)

  break;

  name = player.playerName;// This "Player1" denotes the player name could also be the computer name

  innerDict = [self getAllNodeInfoToDictionary:player];

  [rootObj setObject:innerDict forKey:name]; // This "Player1" denotes the person who start this game

  }

  player = nil;

  NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:(id)rootObj format:NSPropertyListXMLFormat_v1_0 errorDescription:&errorDesc];

  这个plistData为创建好的plist文件,用其writeToFile方法就可以写成文件。下面是代码:

  /*得到移动设备上的文件存放位置*/

  NSString *documentsPath = [self getDocumentsDirectory];

  NSString *savePath = [documentsPath stringByAppendingPathComponent:@"save.plist"];

  /*存文件*/

  if (plistData) {

  [plistData writeToFile:savePath atomically:YES];

  }

  else {

  NSLog(errorDesc);

  [errorDesc release];

  }

  - (NSString *)getDocumentsDirectory {

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

  return [paths objectAtIndex:0];

  }

  4 读取plist文件并转化为NSDictionary

  NSString *documentsPath = [self getDocumentsDirectory];

  NSString *fullPath = [documentsPath stringByAppendingPathComponent:@"save.plist"];

  NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:fullPath];

  5 读取一般性文档文件

  NSString *tmp;

  NSArray *lines; /*将文件转化为一行一行的*/

  lines = [[NSString stringWithContentsOfFile:@"testFileReadLines.txt"]

  componentsSeparatedByString:@"\n"];

  NSEnumerator *nse = [lines objectEnumerator];

  // 读取<>里的内容

  while(tmp = [nse nextObject]) {

  NSString *stringBetweenBrackets = nil;

  NSScanner *scanner = [NSScanner scannerWithString:tmp];

  [scanner scanUpToString:@"<" intoString:nil];

  [scanner scanString:@"<" intoString:nil];

  [scanner scanUpToString:@">" intoString:&stringBetweenBrackets];

  NSLog([stringBetweenBrackets description]);

  }

posted on 2012-03-04 19:19  pengyingh  阅读(367)  评论(0)    收藏  举报

导航