博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSUserDefaults 存储数据到本地,NSUserDefaults 使用
阅读量:7114 次
发布时间:2019-06-28

本文共 2882 字,大约阅读时间需要 9 分钟。

hot3.png

//以下是我用 NSUserDefaults 将 NSData 类型的地址数组存在本地。

UserAddressEntity *userAddressEntity = [[UserAddressEntity alloc]init];    userAddressEntity.addName = addName.text;    userAddressEntity.addPhone = addPhone.text;    userAddressEntity.addressInfo = [NSString stringWithFormat:@"%@%@",baseAddress.text,detailAddress.text];        //实例 NSUserDefaults 类    NSUserDefaults *address = [NSUserDefaults standardUserDefaults];    //获取本地 address 数据,记得将取出来的不可变 NSArray 转成 可变的 NSMutableArray ,可以用alloc 方法代替    NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:[address objectForKey:@"AddressArray"]];    //将 userAddressEntity 对象转成 NSData 类型    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:userAddressEntity];    //存放数据的数组将 data 加入进去    [mutableArray addObject:data];    //记住要转换成不可变数组类型    NSArray * array = [NSArray arrayWithArray:mutableArray];        [address setObject:array forKey:@"AddressArray"];
//以下是 UserAddressEntity.h

//  UserAddressEntity.h//  SXH////  Created by Jack on 15/9/15.//  Copyright (c) 2015年 lyss. All rights reserved.//#import 
@interface UserAddressEntity : NSObject@property (nonatomic, strong) NSString *addName;@property (nonatomic, strong) NSString *addPhone;@property (nonatomic, strong) NSString *addressInfo;//- (instancetype)initWithAttributes:(NSDictionary *)attributes;@end

//以下是 UserAddressEntity.m

////  UserAddressEntity.m//  SXH////  Created by Jack on 15/9/15.//  Copyright (c) 2015年 lyss. All rights reserved.//#import "UserAddressEntity.h"@implementation UserAddressEntity@synthesize addName,addPhone,addressInfo;- (instancetype)initWithAttributes:(NSDictionary *)attributes {        self = [super init];    if (!self) {        return nil;    }        self.addName= [attributes valueForKeyPath:@"addName"];    self.addPhone = [attributes valueForKeyPath:@"addPhone"];    self.addressInfo = [attributes valueForKeyPath:@"addressInfo"];        return self;}/** *  将对象写入文件的时候调用 *  怎样存储 *  转成 NSDate 类型前的编码 *  @param aCoder aCoder */- (void)encodeWithCoder:(NSCoder *)encoder{    [encoder encodeObject:self.addName forKey:@"addName"];    [encoder encodeObject:self.addPhone forKey:@"addPhone"];    [encoder encodeObject:self.addressInfo forKey:@"addressInfo"];}- (id)initWithCoder:(NSCoder *)decoder{    if(self = [super init]) {        self.addName = [decoder decodeObjectForKey:@"addName"];        self.addPhone = [decoder decodeObjectForKey:@"addPhone"];        self.addressInfo = [decoder decodeObjectForKey:@"addressInfo"];    }        return self;}@end

ps:

//获取 本地数据 

 NSUserDefaults *address = [NSUserDefaults standardUserDefaults];

    mutableArrayAddress = [NSMutableArray arrayWithArray:[address objectForKey:@"AddressArray"]];

//获取 数组中 第一个 NSData 类型的值

UserAddressEntity *addressEntity = [NSKeyedUnarchiver unarchiveObjectWithData:[mutableArrayAddress objectAtIndex:0];

转载于:https://my.oschina.net/jack088/blog/506460

你可能感兴趣的文章
《Python网络数据采集》读书笔记(四)
查看>>
数据结构 链表学习笔记
查看>>
C# 中奇妙的函数–String Split 和 Join
查看>>
禁止 iOS 浏览器 自动识别拨号
查看>>
KVM 手动添加raw格式的lun给guest
查看>>
ESXi5.1嵌套KVM虚拟化环境支持配置
查看>>
我的友情链接
查看>>
java学习笔记----运算符
查看>>
Linux 配置VNC远程桌面
查看>>
rdesktop的使用方法
查看>>
tomcat 远程调试配置
查看>>
2012.618前夕苏宁易购你肿么了?打不开了
查看>>
我的友情链接
查看>>
Linux基础
查看>>
python环境安装paramiko模块
查看>>
zabbix监控tomcat
查看>>
公司新搬家---IT总结
查看>>
zabbix 针对nginx 状态监控
查看>>
关于python中文报错的解决办法
查看>>
eclipse配置android教程
查看>>