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

网网站基础建设优化知识网站建设的市场定位的方案

网网站基础建设优化知识,网站建设的市场定位的方案,动漫制作专业认知报告,深圳有哪些做网站的公司好我们开发中经常会遇到这样的场景,就是我们客户端用户进行了某个操作,这个操作影响了数据的状态,但是我们又不方便重新请求一次数据, 这个时候,就需要我们记录一下本地状态在内存中,随着业务越来越复杂&…

我们开发中经常会遇到这样的场景,就是我们客户端用户进行了某个操作,这个操作影响了数据的状态,但是我们又不方便重新请求一次数据,
这个时候,就需要我们记录一下本地状态在内存中,随着业务越来越复杂,要记录的状态也越来越多,如果状态都是对应同一个ID还比较好处理,如果不同的状态对应的ID都不是同一个,则管理起来比较麻烦,比如,有些情况下,我们不能根据某条数据的内容ID,而要记录到实例队形的颗粒度,这个时候,就需要我们支持不同的ID来记录本地状态了,
一下是我的处理思路,
我们可以创建一个单例,单例中有一个数组,数组中
有字典,字典中包含三个键: type:对应 id的类型,
ID,对应ID的值,data,对应我们要记录的数据,通常情况下是一个字典,对应我们要记录的状态字段和值,我们获取记录的状态的时候,传入一个ID数组,就会遍历整个容器,获取到对应的ID下的所有数据,如下所示

[
{
“type”:”contentId”,
“id”: “xxxx”
“data”: {
“hasComment”:“0”
}
},
{
“type”:”userId”,
“id”: “xxxx”
“data”: {
“hasComment”:“1”
}
},
{
“type”:”xxxid”,
“id”: “xxxx”
“data”: {
“hasSee”:“1”
}
},
]

具体代码如下

保存本地数据的实现,单例中

- (void)updateData:(NSArray *)newData {NSMutableArray *keysToUpdate = [[NSMutableArray alloc] init];for (NSDictionary *data in newData) {NSString *IDString = [data stringForKey:@"id"];NSString *type = [data stringForKey:@"type"];NSDictionary *templateData = [data dictionaryForKey:@"data"];if (IDString.length <= 0 || type.length <= 0 || templateData.count <= 0) continue;NSUInteger synchronizedTemplateDataToUpdateIndex = 0;NSDictionary *synchronizedTemplateDataToUpdate = nil;for (NSUInteger i = 0; i < self.synchronizedDataList.count; i++) {NSDictionary *synchronizedData = [self.synchronizedDataList objectAtIndex:i];NSString *synchronizedIDString = [synchronizedData stringForKey:@"id"];NSString *synchronizedType = [synchronizedData stringForKey:@"type" ];NSMutableDictionary *synchronizedTemplateData = [[synchronizedData dictionaryForKey:@"data"] mutableCopy];if (![synchronizedIDString isEqualToString:IDString] || ![synchronizedType isEqualToString:type]) continue;for (NSString *key in templateData.allKeys) {NSString *value = [templateData stringForKey:key];[synchronizedTemplateData setObject:value forKey:key];}synchronizedTemplateDataToUpdateIndex = i;synchronizedTemplateDataToUpdate = @{@"id": IDString,@"type": type,@"data": synchronizedTemplateData};break;}if (synchronizedTemplateDataToUpdate == nil) {[self.synchronizedDataList addObject:data];} else {[self.synchronizedDataList removeObjectAtIndex:synchronizedTemplateDataToUpdateIndex];[self.synchronizedDataList addObject:synchronizedTemplateDataToUpdate];}[keysToUpdate addObject:@{@"id": IDString ?: @"",@"type": type ?: @""}];}

更新本地数据

   NSMutableDictionary *data = [NSMutableDictionary dictionary];data[@"hasCancelRecommend"] = @(NO);NSString *addressId = [NSString stringWithFormat:@"%p", model];NSDictionary *updateData = @{@"id": addressId ?: @"",@"type": @"modelAddress",@"data": data};[[LBDataSyncDataManager sharedManager] updateData:@[updateData]];

根据所有ID获取本地数据, 单例的实例方法

- (NSDictionary *)getMemoryDataWithKeys:(NSArray *)keys {NSMutableDictionary *getSynchronizedData = [[NSMutableDictionary alloc] init];for (NSString *key in keys) {for (NSDictionary *synchronizedData in self.synchDataList) {NSString *synchronizedIDString = [synchronizedData stringForKey:@"id"];if (![key isEqualToString:synchronizedIDString]) continue;[getSynchronizedData addEntriesFromDictionary:[synchronizedData dictionaryForKey:@"data"]];break;}}return getSynchronizedData;
}

调用,获取到所有的本地状态

  NSString *cardInstanceAddress = [NSString stringWithFormat:@"%p", instance];NSDictionary *mergedData = [[LBDataSyncDataManager sharedManager] getMergedDataWithKeys:@[contentID ?: @"", publicID ?: @"", Address ?: @""]];

文章转载自:

http://hwTHc79q.yfstt.cn
http://SjmcSgXz.yfstt.cn
http://lybj4chF.yfstt.cn
http://SyNRwbJB.yfstt.cn
http://UGoNlkfz.yfstt.cn
http://dDsCxk1K.yfstt.cn
http://nApEwN3r.yfstt.cn
http://yEEWPxFt.yfstt.cn
http://0vKmskBP.yfstt.cn
http://CIlf4Ul0.yfstt.cn
http://ILYCKvTN.yfstt.cn
http://IOJRduIg.yfstt.cn
http://ufQJNTJR.yfstt.cn
http://hLIai8uY.yfstt.cn
http://PtdiZNaz.yfstt.cn
http://ieOklJ4w.yfstt.cn
http://5JzZ4MyT.yfstt.cn
http://eGShS1rG.yfstt.cn
http://nLLIO82V.yfstt.cn
http://uG0S9r8D.yfstt.cn
http://3jDTc9vf.yfstt.cn
http://apwAOGw5.yfstt.cn
http://rIXOK7pv.yfstt.cn
http://Z8wtdMbx.yfstt.cn
http://Bbq5CFad.yfstt.cn
http://HnFZ3M6f.yfstt.cn
http://PfBZ4EAU.yfstt.cn
http://CdMpKqpy.yfstt.cn
http://ijnhspsD.yfstt.cn
http://zZAXHx5i.yfstt.cn
http://www.dtcms.com/wzjs/709902.html

相关文章:

  • 黑龙江网站建设企业aso优化技巧大aso技巧
  • 建站推广文案科技基金
  • 龙岗网站建设_公司推广wordpress透明化插件
  • 网站开发步骤规划沈阳网站制作 房小二网
  • 上海知名的网站建设公司六安马启兵轮轩案
  • 做包装盒子的厂家哪个网站北京学校线上教学
  • 接网站建设_网站设计企业网站建设管理制度
  • 外贸网站建设公司平台网站的导入流量怎么做
  • 湛江网站建设方案策划网站大学报名官网入口
  • 网站备案要营业执照原件吗手机网站开发+图库类
  • 狗贩子怎么做网站卖狗融资平台公司是什么意思
  • 集团网站建设网络公司广告公司网站设计策划书
  • dw 怎么做钓鱼网站这么做国外网站的国内镜像站
  • 网站地图做计划任务济宁市建设工程质量监督站网站
  • 网站规划建设与管理维护大作业缪斯国际设计董事长
  • 满山红网站建设公司沧州自适应网站建设
  • 自己优化网站隐私浏览器
  • php 实现网站扫码登录网站运营优化
  • 东昌府区网站建设公司海口网站设计
  • 网站建设销售实训报告酒店软装设计公司官网
  • 大型电商网站开发建网站的目的
  • 全国建筑资质查询网站长沙seo优化推广
  • 面包屑 网站做本地网站赚钱
  • 网站有哪些内容网站子域名怎么设置
  • 陕西通达工程建设有限公司网站好的用户体验网站
  • 上海杨浦区建设网站公众号开发免费
  • 做网站需要多少钱协会宣传网站开发方案
  • 网站建设最基础的是什么意思网站后台管理系统php
  • 网站域名收费标准网站提交搜索引擎后出现问题
  • 一流的铁岭做网站公司美发网站模板