Day-04

作者: 清杨程 | 来源:发表于2019-06-07 15:24 被阅读0次

第一节 NSUserDefaults(偏好设置的存取)

1.NSUserDefaults了解
2.NSUserDefaults用法

1>  存:
   NSUserDefaults*userSave = [NSUserDefaultsstandardUserDefaults]; 
    [userSave setObject:@"value"forKey:@"valueKey"];
    [userSave setBool:YESforKey:@"boolKey"];
    [userSave synchronize];
2>取
NSUserDefaults*userRaead = [NSUserDefaultsstandardUserDefaults];
NSString*value = [userRaead objectForKey:@"valueKey"];
BOOLisBool = [userRaead boolForKey:@"boolKey"];

第二节 plist文件存储

1>  存
    //获取沙盒路径
    NSString *homePath = NSHomeDirectory();
    NSLog(@"%@",homePath);
    NSArray *dataArray = [NSArray arrayWithObjects:@"123", @"abc",nil];
    //获取存储文件Caches路径参数1directory:要搜索的文件夹 参数2domainMask:在哪个范围搜索 参数3expandTilde:是否需要展开路径
    NSString *cachesPath =   NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES)[0];
    //拼接文件名
    NSString *filePath = [cachesPath stringByAppendingPathComponent:@"app.plist"];
    //写入文件 参数File:文件路径
    [dataArray writeToFile:filePath atomically:YES];
2>  取
    NSString *cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES)[0];
    NSString *filePath = [cachesPath stringByAppendingPathComponent:@"app.plist"];
NSArray *dataArray = [NSArray arrayWithContentsOfFile:filePath];

第三节 归档/解档

1.归档、解档步骤
1> 创建要归档对象
2> 遵守NSCoding协议
3> 实现协议方法
4> 进行归档,解档

1>  对象.h文件
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface Person : NSObject<NSCoding>
@property (nonatomic,assign) int age;
@property (nonatomic,strong) NSString *name;
//告诉系统哪些属性需要归档
-(void)encodeWithCoder:(NSCoder *)aCoder;
//告诉系统哪些属性需要解档
-(instancetype)initWithCoder:(NSCoder *)aDecoder;
@end
NS_ASSUME_NONNULL_END
2>  对象.m文件
#import "Person.h"
@implementation Person
-(void)encodeWithCoder:(NSCoder *)aCoder{
    [aCoder encodeObject:_name forKey:@"name"];
    [aCoder encodeInt:_age forKey:@"age"];
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder{
    self = [super init];
    if (self) {
        _age = [aDecoder decodeIntForKey:@"age"];
        _name = [aDecoder decodeObjectForKey:@"name"];
    }
    return self;
}
@end
1>    归档

    Person*p = [[Personalloc] init];
    p.age= 18;
    p.name= @"Jack";
   //归档(任何对象都可以一般用作自定义对象)获取caches文件夹
   NSString*cachesFile =  NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
   //拼接文件名
   NSString*filePath = [cachesFile stringByAppendingString:@"peson.data"];
   //参数Object:要归档的对象File文件全路径
  [NSKeyedArchiverarchiveRootObject:p toFile:filePath];   
2>  解档
   //解档
   NSString*cachesFile =  NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
    NSString*filePath = [cachesFile stringByAppendingString:@"peson.data"];
    Person*p = [NSKeyedUnarchiverunarchiveObjectWithFile:filePath];
    NSLog(@"%d   %@",p.age,p.name);

相关文章

  • day04-作业

    day-04作业 读程序,总结程序的功能: numbers=1for i in range(0,20):numbe...

  • day-04

    if 语句 (2) if--elseif 条件语句;代码1else:代码n其他语句执行过程:满足1,执行1,再执行...

  • Day-04

    第一节 NSUserDefaults(偏好设置的存取) 1.NSUserDefaults了解2.NSUserDe...

  • day-04作业

  • canvas day-04

    第三方的canvas库 konvaJS https://konvajs.github.io/ 通用 echar...

  • Day-04 练习

  • 日更36/100:一条关于“跳绳刻意练习”的增强回路

    一条关于“跳绳刻意练习”的增强回路 ——精听《刘润·商业洞察力30讲》&精读《系统之美》DAY-04(05增强回路...

  • [JavaScript] (Day-04) - 数组

    JavaScript 的Array可以包含任意数据类型,并通过索引来访问每个元素。 表示方式 获取数组的元素个数 ...

  • Day-04 字符串

    字符串02 1.获取单个字符 字符串中的每一个字符都会对应一个唯一的下标(索引)用来表示字符在字符串中的位置 下标...

  • day-04 字符串

    获取字符 1.获取单个字符 字符串中没一个字符都会对应一个下标(索引),用来表示字符在字符串中的位置下标是从0开始...

网友评论

      本文标题:Day-04

      本文链接:https://www.haomeiwen.com/subject/sdnmxctx.html