利用NSKeyedUnarchiver对象归档方式保存数据
来源:互联网 发布:sql select语句 包含 编辑:程序博客网 时间:2024/06/03 20:25
//
// ZSXCUserManager.h
// zsxc
//
// Created by hyjt on 2017/8/1.
// Copyright © 2017年haoyungroup. All rights reserved.
//
#import<Foundation/Foundation.h>
@interfaceZSXCUserData :NSObject
@property(nonatomic,copy) NSString *userId;
@property(nonatomic,copy) NSString *devId;
@property(nonatomic,copy) NSString *orgId;
@property(nonatomic,copy) NSString *password;
@end
@interfaceZSXCUserManager :NSObject
+ (instancetype)sharedManager;
@property(nonatomic,strong) ZSXCUserData *currentUserData;
@end
//
// ZSXCUserManager.m
// zsxc
//
// Created by hyjt on 2017/8/1.
// Copyright © 2017年haoyungroup. All rights reserved.
//
#import"ZSXCUserManager.h"
#define ZSXCUserId @"userId"
#define ZSXCPassword @"password"
#define ZSXCOrgId @"orgId"
#define ZSXCDevId @"devId"
@interfaceZSXCUserData ()<NSCoding>
@end
@implementationZSXCUserData
- (instancetype)initWithCoder:(NSCoder*)aDecoder
{
if (self= [superinit]) {
_userId = [aDecoderdecodeObjectForKey:ZSXCUserId];
_password = [aDecoder decodeObjectForKey:ZSXCPassword];
_orgId = [aDecoderdecodeObjectForKey:ZSXCOrgId];
_devId = [aDecoderdecodeObjectForKey:ZSXCDevId];
}
return self;
}
- (void)encodeWithCoder:(NSCoder*)encoder
{
if ([_userIdlength]) {
[encoderencodeObject:_userIdforKey:ZSXCUserId];
}
if ([_passwordlength]) {
[encoderencodeObject:_passwordforKey:ZSXCPassword];
}
if ([_orgIdlength]) {
[encoderencodeObject:_orgIdforKey:ZSXCOrgId];
}
if ([_devIdlength]) {
[encoderencodeObject:_devIdforKey:ZSXCDevId];
}
}
@end
@interfaceZSXCUserManager ()
@property(nonatomic,copy) NSString *filepath;
@end
@implementationZSXCUserManager
+ (instancetype)sharedManager
{
static ZSXCUserManager *instance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSString *file = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES).firstObjectstringByAppendingPathComponent:@"ZSXCUSER.data"];
instance = [[ZSXCUserManageralloc]initWithPath:file];
});
return instance;
}
- (instancetype)initWithPath:(NSString*)filepath
{
if (self= [superinit])
{
_filepath = filepath;
[selfreadData];
}
return self;
}
-(void)setCurrentUserData:(ZSXCUserData*)currentUserData{
_currentUserData = currentUserData;
[selfsaveData];
}
//从文件中读取和保存用户名密码
- (void)readData
{
NSString *filepath = [selffilepath];
if ([[NSFileManagerdefaultManager]fileExistsAtPath:filepath])
{
id object = [NSKeyedUnarchiverunarchiveObjectWithFile:filepath];
_currentUserData = [object isKindOfClass:[ZSXCUserDataclass]] ? object :nil;
}
}
//保存数据
- (void)saveData
{
NSData *data = [NSDatadata];
if (_currentUserData)
{
data = [NSKeyedArchiverarchivedDataWithRootObject:_currentUserData];
}
[datawriteToFile:[selffilepath]atomically:YES];
DLog(@"%@",[selffilepath]);
}
@end
阅读全文
0 0
- 利用NSKeyedUnarchiver对象归档方式保存数据
- NSKeyedUnarchiver数据归档(很巴适)
- ios数据存储之--对模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- ios数据存储之--对模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- ios数据存储之--对模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- ios数据存储之--模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- ios ---对模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- NSKeyedArchiver、NSKeyedUnarchiver 数据持久化归档
- iOS开发-进阶:数据存储之-对模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- IOS,利用归档保存少量数据
- 利用NSKeyedUnarchiver简单的数据存储
- 利用NSKeyedArchiver归档对象
- 利用EXCHANGE PARTITION WITH TABLE方式进行数据归档
- ios:NSKeyedArchiver/NSKeyedUnarchiver(归档/解档)
- NSKeyedArchiver/NSKeyedUnarchiver归档解归档的使用
- ios开发学习笔记--数据持久化之归档解档(NSKeyedArchiver/ NSKeyedUnarchiver)
- 归档(plist)保存数据
- 使用NSKeyedArchiver归档和NSKeyedUnarchiver读档
- windows server2008搭建VPN服务
- webrepl的连接
- python中的@property装饰器
- canvas变换
- css盒子模型之详解
- 利用NSKeyedUnarchiver对象归档方式保存数据
- mysql优化经验总结
- 初识JDBC --- 人生如只如初见,何必强求只一遍
- java调用Kotlin方法的参数为null异常问题
- html标签logo图片怎么添加上去的
- oracle 的4个循环例子
- STM32cube HAL库 UART串口中断方式收发任意长度 调试笔记
- 编译原理词法分析小程序的设计
- 利用x64_dbg破解一个最简单的64位小程序