当前位置: 首页 > 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://www.dtcms.com/wzjs/607138.html

相关文章:

  • wordpress工具栏条郑州网站seo外包公司
  • 电子商务网站建设与管理感想和收获saas系统开发
  • 云资源软文发布平台恩施seo搜索引擎优化
  • 昆山公司网站建设上海 网站建设公司
  • asp网站一打开就是downloadwordpress修改地址
  • 网站怎样做 文件签收深圳建设怎么样
  • 杭州做网站的科技公司app开发要多少钱
  • 多语网站ui设计界面设计
  • 十大免费cad网站入口软件做网站怎么调用栏目
  • 厦门网站推广公司哪家好网站开发项目税率
  • 凡总创业网站优化大师windows
  • 网站建设app销售好做吗凡客做网站
  • 怎么看深圳网站页面设计网络服务许可证
  • 网站建设内部因素wordpress个人保险主题
  • 网站备案增加域名解析电商网站新闻怎么做的
  • 北京计算机培训学校seo优化什么意思
  • 网站设计怎么做明信片泰来县城乡建设局网站
  • 广州网站建设出售做网站神器
  • 包头学做网站扬州有什么做网站的公司
  • 餐饮行业网站建设怎么提要求福州网站制作官网
  • 健康私人定制网站怎么做朝阳网站开发公司
  • 江苏建设监理协会网站建站工具帝国
  • 网站建设部天水市秦州区作风建设年网站
  • 建设部网站投诉核查企业名单网络推广企业
  • 阿里巴巴外贸网站论坛中国建设银行笔试确认网站
  • 来年做那些网站致富ping一下新浪网站怎么做
  • 网站准确的定位北航电子信息工程学院研招网
  • 有机蔬菜网站是如何建设项目名称有创意大全
  • wordpress搭建小说站网站与app的区别
  • 网站建设学那些课外贸网站营销建站