数据持久化之.plist文件

本文详细介绍了如何使用Objective-C创建和读取属性列表(plist)文件,包括创建过程、读取过程及注意事项。适用于iOS开发人员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:http://blog.youkuaiyun.com/chaoyuan899/article/details/11889857


文件目录简单说明:

  • 应用程序包:包含了所有的资源文件和可执行文件
  • Document:保存应用运行时生成的需要持久化的数据,iTunes 同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录
  • tmp:保存应用运行时所需的临时数据,使用完毕后再将相应地文件从该目录删除,应用没有运行时,系统也可能会清除该目录下得所有文件。iTunes 同步设备时不会备份该目录。
  • Library / Caches:保存应用运行时生成的需要持久化的数据,iTunes 同步设备时不会备份该目录。一般存储体积大,不需要备份的非重要数据。
  • Library / Preference:保存应用的所有偏好设置,ios 的 Setting (设置)应用会在该目录中查找应用的设置信息。iTunes 同步设备时会备份该目录。


下面是利用字典将数据写入到.plist文件

  1. //  
  2. //  ViewController.m  
  3. //  plist  
  4. //  
  5. //  Created by Rio.King on 13-9-22.  
  6. //  Copyright (c) 2013年 Rio.King. All rights reserved.  
  7. //  
  8.   
  9. #import "ViewController.h"  
  10.   
  11. @interface ViewController ()  
  12.   
  13. @end  
  14.   
  15. @implementation ViewController  
  16.   
  17. - (void)viewDidLoad  
  18. {  
  19.     [super viewDidLoad];  
  20.     [self createPlist];  
  21.     [self readPlist];  
  22.       
  23. }  
  24.   
  25.   
  26. -(void)readPlist{  
  27.     //搜索Document路径  
  28.     NSString *documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];  
  29.       
  30.     NSString *path = [documents stringByAppendingPathComponent:@"dict.plist"];  
  31.     NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];  
  32.     NSLog(@"%@",dict);  
  33. }  
  34.   
  35. -(void)createPlist{  
  36.     NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];  
  37.     [dict setObject:@"chaoyuan" forKey:@"name"];  
  38.     [dict setObject:[NSNumber numberWithInt:21] forKey:@"age"];  
  39.     [dict setObject:@"www.chaoyuan.sinaapp.com" forKey:@"homepage"];  
  40.       
  41.     //获取Document目录  
  42.     NSString *home = NSHomeDirectory();  
  43.       
  44.     NSString *documents = [home stringByAppendingPathComponent:@"Documents"];  
  45.     NSLog(@"%@",documents);  
  46.       
  47.     NSString *path = [documents stringByAppendingPathComponent:@"dict.plist"];  
  48.       
  49.     //写到.plist文件中去  
  50.     [dict writeToFile:path atomically:YES];  
  51. }  
  52.   
  53. @end  
//
//  ViewController.m
//  plist
//
//  Created by Rio.King on 13-9-22.
//  Copyright (c) 2013年 Rio.King. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self createPlist];
	[self readPlist];
    
}


-(void)readPlist{
    //搜索Document路径
    NSString *documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    
    NSString *path = [documents stringByAppendingPathComponent:@"dict.plist"];
    NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
    NSLog(@"%@",dict);
}

-(void)createPlist{
    NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
    [dict setObject:@"chaoyuan" forKey:@"name"];
    [dict setObject:[NSNumber numberWithInt:21] forKey:@"age"];
    [dict setObject:@"www.chaoyuan.sinaapp.com" forKey:@"homepage"];
    
    //获取Document目录
    NSString *home = NSHomeDirectory();
    
    NSString *documents = [home stringByAppendingPathComponent:@"Documents"];
    NSLog(@"%@",documents);
    
    NSString *path = [documents stringByAppendingPathComponent:@"dict.plist"];
    
    //写到.plist文件中去
    [dict writeToFile:path atomically:YES];
}

@end

注意:

  • 属性列表是一种XML格式的文件,拓展名为 plist
  • 如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等基本类型,就可以使用 writeToFile:atomically:方法直接将对象写到属性列表文件中。




附注:


mac系统如何显示和隐藏文件

 
苹果Mac OS X操作系统下,隐藏文件是否显示有很多种设置方法,最简单的要算在Mac终端输入命令。显示/隐藏Mac隐藏文件命令如下(注意其中的空格并且区分大小写):显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false

或者
显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles  YES
隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles  NO
输完单击Enter键,退出终端,重新启动Finder就可以了
重启Finder:鼠标单击窗口左上角的苹果标志-->强制退出-->Finder-->重新启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值