读写 .plist 文件的代码例子

来源:互联网 发布:sqlserver 2012 下载 编辑:程序博客网 时间:2024/06/06 21:27

功能创建一个test.plist文件,textInput作为输入,displayLabel作为显示,有一个按钮来触发保持程序triggerStorage;

-(void)triggerStorage
{
    displayLabel.text = textInput.text;
   
    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *path=[paths    objectAtIndex:0]; 
    NSString *filename=[path stringByAppendingPathComponent:@"test.plist"];   //获取路径
   
    NSDictionary* dic2 = [NSDictionary dictionaryWithContentsOfFile:filename];  //读取数据
    NSLog(@"dic2 is:%@",dic2);
   
    //创建一个dic,写到plist文件里
    NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:displayLabel.text,@"IP",nil]; //写入数据
    [dic writeToFile:filename atomically:YES];  

}

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
    NSMutableArray *resultData;
    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *path=[paths objectAtIndex:0];
    NSLog(@"path = %@",path);  
    NSString *filename=[path stringByAppendingPathComponent:@"test.plist"];
 
    //读文件
    NSDictionary* dic2 = [NSDictionary dictionaryWithContentsOfFile:filename];
    NSLog(@"dic is:%@",dic2);   
    if(dic2 == nil)
    {
        //1. 创建一个plist文件
        NSFileManager* fm = [NSFileManager defaultManager];
        [fm createFileAtPath:filename contents:nil attributes:nil];       
    }
    else
    {
        resultData=[dic2 objectForKey:@"IP"];
        if([dic2 count] > 0)
        {
            displayLabel.text = resultData;
        }
        else
        {
            displayLabel.text = @" ";
        }
    }
    self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc]   //按钮的初始化及触发条件设置
                                               initWithTitle:@"保存"
                                               style:UIBarButtonItemStylePlain
                                               target:self
                                               action:@selector(triggerStorage)] autorelease];   
    [super viewDidLoad];
}

------------------------------------------------------------------------------------------------------------------------------------------------------------

参考代码:

plist 文件读写
    //1. 创建一个plist文件
    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *path=[paths    objectAtIndex:0];
    NSLog(@"path = %@",path);
    NSString *filename=[path stringByAppendingPathComponent:@"test.plist"];   
    NSFileManager* fm = [NSFileManager defaultManager];
    [fm createFileAtPath:filename contents:nil attributes:nil];       
    //NSDictionary* dic = [NSDictionary dictionaryWithContentsOfFile:plistPath];
   
    //创建一个dic,写到plist文件里
    NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:@"sina",@"1",@"163",@"2",nil];
    [dic writeToFile:filename atomically:YES];
   
    //读文件
    NSDictionary* dic2 = [NSDictionary dictionaryWithContentsOfFile:filename];
    NSLog(@"dic is:%@",dic2);





通过读写 .plist 文件,我们可以在 iPhone 里记录或调取数据,下面就是 CocoaChina 会员 “pjk1129” 分享的读写 .plist 文件的代码

以name,phoneNumber,age三个字段为例。 iPhone 在文本框中输入数据,获取后装入数组中,然后把数组写入.plist文件

写操作

    NSString *name=[txt1 text];
    NSNumber *phoneNumber=[[NSNumber alloc] initWithInt:[[txt2 text] intValue]];
    NSNumber *age=[[NSNumber alloc] initWithInt:[[txt3 text] intValue]];
   

  

    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *path=[paths    objectAtIndex:0];
    NSString *filename=[path stringByAppendingPathComponent:@"personal.plist"];

     //先判断有没有创建。plist文件,没有就新建  
    if (NO == [[NSFileManagerdefaultManager] fileExistsAtPath:filename])

        {

         NSMutableArray *array=[[NSMutableArray alloc]init];
          [array  addObject:name];
          [array  addObject:phoneNumber];
           [array  addObject:age];

           [array writeToFile:filename  atomically:YES];

            [array release];  

        }  

读操作

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *path=[paths    objectAtIndex:0];
    NSString *filename=[path stringByAppendingPathComponent:@"personal.plist"];
   
    NSMutableArray *array=[[NSMutableArray alloc] initWithContentsOfFile:filename];
   
    txt1.text=[array objectAtIndex:0];
    txt2.text=[[NSString alloc] initWithFormat:@"%d",[[array objectAtIndex:1]intValue]];
    txt3.text=[[NSString alloc] initWithFormat:@"%d",[[array objectAtIndex:2]intValue]];

    [array release];

原创粉丝点击