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

企业网站的建设与实现论文百度竞价排名是哪种方式

企业网站的建设与实现论文,百度竞价排名是哪种方式,网站建设品牌推荐,山西做网站使用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://www.rdtb.cn/news/1379.html

相关文章:

  • 线上教学网站怎么建设建立网站要多少钱一年
  • 建立网站的好处潍坊seo推广
  • 网站首页广告代码seo优化网络推广
  • 未来前景比较好的行业有哪些进一步优化
  • 学做甜品的网站系统优化大师免费版
  • wordpress 设置数据库如何优化网络速度
  • 莱州市做企业网站怎么推广游戏叫别人玩
  • 网址代理访问重庆seo整站优化外包服务
  • 外贸做网站要多久做好seo岗位
  • 美国做旅游网站腾讯营销平台
  • 权重7以上的网站武汉网站维护公司
  • 江苏专业做网站的公司网络推广学校
  • 怎么做日本钓鱼网站吗百度搜索引擎营销
  • 网站建设怎样设置动态背景新公司做网站多少钱
  • 网站建设普通发票税点北京seo关键词优化收费
  • fifa18做sbc的网站saascrm国内免费pdf
  • 营销型网站建设公司价格代运营竞价公司
  • 南通网站制作公司哪家好口碑营销的缺点
  • 网站如何做链接青岛关键词优化平台
  • 微信公司网站百度指数趋势
  • 自己做网站必须要学哪些sem账户托管
  • 免费的网站在哪里下载企业宣传标语
  • delphi7 网站开发网络商城应该如何推广
  • 学校网站建设如何分类万网域名注册官网
  • 做天猫转让网站怎么做网站教程视频
  • 网站开发怎样实现上传视频b站推广网站mmmnba
  • 建设部执业考试中心网站seo站长工具 论坛
  • 网站内容建设总结山西网络推广专业
  • 浦东新区网站建设外贸营销型网站制作公司
  • 网站建设设计思想游戏代理推广渠道