当前位置: 首页 > wzjs >正文

买了网站主机后如何建设网站苏州建设网站平台

买了网站主机后如何建设网站,苏州建设网站平台,常州微信网站建设市场,外链优化方法使用NSKeyedUnarchiver归档数据到本地&#xff0c;很多时候保存的并不是基础数据类型&#xff0c;更多是自己定义的Model。有时会碰到归档或者读取的内容跟自己保存的数据类型不匹配。 现在按照思路一步一步解决&#xff1a; 1.先保存文件 保存的数据的类型 #import <Fou…
使用NSKeyedUnarchiver归档数据到本地,很多时候保存的并不是基础数据类型,更多是自己定义的Model。有时会碰到归档或者读取的内容跟自己保存的数据类型不匹配。

现在按照思路一步一步解决:

1.先保存文件

保存的数据的类型
 
#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGIN@interface HSFileModel : NSObject @property (nonatomic, strong) NSURL *fileUrl; //文件链接
@property (nonatomic, copy) NSString *fileName; //文件名@end
@property (nonatomic, strong) NSMutableDictionary<NSString *, HSFileModel *> *selectedFilesData;

 保存的数据到本地的方法

// 保存selectedFilesData到本地文件
- (void)saveSelectedFilesDataToLocal {// 获取文件路径NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *documentsDirectory = [paths objectAtIndex:0];// 拼接文件路径NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"SelectedFilesData.plist"];// 归档字典对象NSError *error = nil;NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self.selectedFilesData requiringSecureCoding:YES error:&error];if (error) {NSLog(@"Error archiving data: %@", error);} else {// 将归档数据写入文件[data writeToFile:filePath atomically:YES];}
}

 
 2.读取刚才保存的数据,确保读取的数据的文件路径跟保存的文件路径一致。

- (void)loadSelectedFilesDataFromLocal {// 获取文件路径// 获取文件路径NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *documentsDirectory = [paths objectAtIndex:0];// 拼接文件路径NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"SelectedFilesData.plist"];// 尝试从文件中读取归档数据NSData *data = [NSData dataWithContentsOfFile:filePath];if (data) {// 解档数据为字典对象NSError *error = nil;self.selectedFilesData = [NSKeyedUnarchiver unarchivedObjectOfClasses:[NSSet setWithArray:@[NSMutableDictionary.class, NSString.class, HSFileModel.class, NSURL.class]] fromData:data error:&error];if (error) {NSLog(@"Error unarchiving data: %@", error);// 可以在此处理解档错误的情况}} else {// 如果文件不存在或读取失败,可以初始化一个空字典self.selectedFilesData = [NSMutableDictionary dictionary];}
}

当调用读取的方法的时候会有一个错误如下:

Printing description of error:

Error Domain=NSCocoaErrorDomain Code=4864 "This decoder will only decode classes that adopt NSSecureCoding. Class 'HSFileModel' does not adopt it." UserInfo={NSDebugDescription=This decoder will only decode classes that adopt NSSecureCoding. Class 'HSFileModel' does not adopt it.}

这因为保存的数据类型有自己定义的Model,而且HSFileModel没有实现NSSecureCoding协议导致不能解码。所有被编码和解码的类都必须遵循NSSecureCoding协议。

3.给HSFileModel实现NSSecureCoding协议
 

#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGIN@interface HSFileModel :  NSObject <NSSecureCoding> @property (nonatomic, strong) NSURL *fileUrl; //文件链接
@property (nonatomic, copy) NSString *fileName; //文件名@end
#import "HSFileModel.h"@implementation HSFileModel
+ (BOOL)supportsSecureCoding {return YES;
}- (void)encodeWithCoder:(NSCoder *)coder {[coder encodeObject:self.fileUrl forKey:@"fileUrl"];[coder encodeObject:self.fileName forKey:@"fileName"];
}- (instancetype)initWithCoder:(NSCoder *)coder {self = [super init];if (self) {self.fileUrl = [coder decodeObjectForKey:@"fileUrl"];self.fileName = [coder decodeObjectForKey:@"fileName"];}return self;
}@end

4.对于 + (nullable id)unarchivedObjectOfClasses:(NSSet<Class> *)classes fromData:(NSData *)data error:(NSError **)error

使用这个方法解档的话,参数(NSSet<Class> *)classes应该传入目标数据可能包含的数据的数据类型的集合。比如:

   self.selectedFilesData = [NSKeyedUnarchiver unarchivedObjectOfClasses:[NSSet setWithArray:@[NSMutableDictionary.class, NSString.class, HSFileModel.class, NSURL.class]] fromData:data error:&error];

到此结束,如大佬有补充请指出。


文章转载自:

http://fc5WwaD9.Lthtp.cn
http://DXBRAPek.Lthtp.cn
http://iVOCbtBl.Lthtp.cn
http://5IMIM5KQ.Lthtp.cn
http://YrGoxbcT.Lthtp.cn
http://QRDRDrRm.Lthtp.cn
http://PsR5Tvme.Lthtp.cn
http://Wl1cBS8r.Lthtp.cn
http://ir6wiBVf.Lthtp.cn
http://M6u1CZt6.Lthtp.cn
http://CUNwB8kV.Lthtp.cn
http://UQmak9YI.Lthtp.cn
http://bPHkRXKO.Lthtp.cn
http://xjeBKrvD.Lthtp.cn
http://J59dqLn7.Lthtp.cn
http://wHK7BLru.Lthtp.cn
http://k1hqSvPm.Lthtp.cn
http://iJPxb1r7.Lthtp.cn
http://ESkgK0WB.Lthtp.cn
http://ZbnY4gTt.Lthtp.cn
http://J9rU9ICs.Lthtp.cn
http://HGLEx9Bi.Lthtp.cn
http://cgUPOw3R.Lthtp.cn
http://2I5pcBrJ.Lthtp.cn
http://8raT3bEV.Lthtp.cn
http://8arPXjua.Lthtp.cn
http://kIr29jCa.Lthtp.cn
http://LwJVvFFY.Lthtp.cn
http://ZtRPnEjZ.Lthtp.cn
http://aq4olJKf.Lthtp.cn
http://www.dtcms.com/wzjs/708158.html

相关文章:

  • 网站服务器购买用seo对网站做分析
  • 企业网站规划书范文自己的网站做怎样的优化调整
  • 电玩网站开发做兼职网站的主要参考文献
  • 南山医院网站建设山东机关建设网站道德模范
  • 美工网站设计收费猪八戒网站开发合同
  • 广西网站建设智能优化线上营销策划案例
  • 制作一个小型网站魔智科技logo在线设计
  • 建设厅网站贵州人事考试信息网wordpress做成仿阿里巴巴
  • 百度seo网站优化 网络服务云南财经大学网页设计作业
  • 青岛网站建设公司代理网络营销推广课程培训
  • 网站建设策划基本流程做室内效果图网站
  • 怎样优化网站案例青岛的互联网公司有哪些
  • 网站开发项目分析模板做一个旅游网站
  • 餐饮营销网站建设网站店铺的图片怎么做的
  • ftp中如何找到网站首页剪辑培训班
  • 网站统计插件简单网页制作模板图片
  • 建设厅安全证考试报名在哪个网站wordpress 本地头像
  • 免费建设微网站制作重庆发布微博
  • 遵义网站制作外包棋牌游戏网站模板
  • 网站开发量微信小程序里的网站怎么做
  • 电子商务网站建设期末题库河南教育平台网站建设
  • 龙岩任做网站的哪几个比较好网上做任务的网站
  • 购买网站模板怎么用建设部标准规范网站
  • 河北省保定市唐县城乡建设网站携程网站联盟
  • 电子商务网站的定义沈阳建设工程信息网举报
  • 做相册的网站(网易虚拟机wordpress教程
  • 重庆有哪些做网站 小程序的太原网站建设外包须知传媒
  • 免费网站是如何盈利的建设网站职业证书
  • 看电视剧免费的网站做刷网站流量犯法吗
  • Dedecms手机网站源码上海企业营销型网站建设