码迷,mamicode.com
首页 > 其他好文 > 详细

沙盒,plist文件,偏好设置

时间:2016-05-06 12:28:10      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

技术分享
技术分享
技术分享
技术分享

偏好设置:

技术分享
技术分享

应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件
Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录

tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录

Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据

Library/Preference:保存应用的所有偏好设置,iOS的Settings(设置)应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录


plist文件详解:
#import "ViewController.h"
#import "Contact.h"

@interface ViewController ()

@property (nonatomic,copy) NSString *plistPath;

@end

@implementation ViewController

-(NSString *)plistPath{
    if (!_plistPath) {
        
        // 获取document目录
        NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
        
        NSLog(@"%@",doc);
        _plistPath = [doc stringByAppendingPathComponent:@"data.plist"];
    }
    
    return _plistPath;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
   
    //查看沙盒的路径
    //1.控制台打印沙盒的路径,使用finder-前往-文件夹 打开
    //2.控制台打印沙盒的路径,打开终端 open + 路径
    //3.使用simpholders工具
    //4.可以断点 输入po NSHomeDirectory()
    
    //获取缓存路径(cache)
    NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    NSLog(@"%@",cachePath);
    
    
    //获取临时路径(tmp)
    NSString *tmpPath = NSTemporaryDirectory();
    NSLog(@"%@",tmpPath);
    
    //主目录
    NSString *homePath = NSHomeDirectory();
    NSLog(@"%@",homePath);
    
    

}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
   
    [self testString];

    //不是所有对象都有可使用write方法
    Contact *contact = [[Contact alloc] init];
    contact.name = @"zhangsan";
    

}

-(void)testString{
    NSString *data = @"aabc";
    
    //写字符串
    [data writeToFile:self.plistPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
    
    //读字符串
    NSString *str = [NSString stringWithContentsOfFile:self.plistPath encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"%@",str);
    
    
}

-(void)testDictionary{
    //把数据保存到沙盒的一个plist文件里
    NSDictionary *data = @{@"name":@"zhangsan",@"age":@23};
    
    //把数据写入一个文件
    [data writeToFile:self.plistPath atomically:YES];
    
    
    //读取
    NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:self.plistPath];
    NSLog(@"%@",dict);

}


/**
 *  测试数组存储在一个plist文件
 */
-(void)testArray{
    //把数据保存到沙盒的一个plist文件里
    NSArray *data = @[@"asd",@"asds"];
    
    //把数据写入一个文件
    [data writeToFile:self.plistPath atomically:YES];
    
    
    //读取
    NSArray *array = [NSArray arrayWithContentsOfFile:self.plistPath];
    NSLog(@"%@",array);
}



用户偏好设置详解:
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
 
    [self modify];

}

-(void)modify{
    //修改 用户偏好设置 数据
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:@"321" forKey:@"password"];
    [defaults synchronize];
}

-(void)delete{
    //删除 用户偏好设置 数据
    NSUserDefaults *defautls = [NSUserDefaults standardUserDefaults];
    [defautls removeObjectForKey:@"account"];
    
    //删除记得也要调用 同步的方法
    [defautls synchronize];
    
}

-(void)read{
    //读取 用户偏好设置 的数据
    NSUserDefaults *defautls = [NSUserDefaults standardUserDefaults];
    NSString *account = [defautls objectForKey:@"account"];
    NSString *password = [defautls objectForKey:@"password"];
    BOOL rememberPwd = [defautls boolForKey:@"rememberPwd"];
    BOOL autoLogin = [defautls boolForKey:@"autoLogin"];
    NSLog(@"%@ %@ %d %d",account,password,rememberPwd,autoLogin);
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    //使用偏好设置保存数据
    
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    
    //保存的数据
    [defaults setObject:@"zhangsan" forKey:@"account"];
    [defaults setObject:@"123" forKey:@"password"];
    [defaults setBool:YES forKey:@"autoLogin"];
    [defaults setBool:YES forKey:@"rememberPwd"];
    
    //调用同步的方法,把数据保存到沙盒文件
    [defaults synchronize];
}




沙盒,plist文件,偏好设置

标签:

原文地址:http://blog.csdn.net/liyunxiangrxm/article/details/51328734

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!