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

如何在iis下建设网站北京网站模仿

如何在iis下建设网站,北京网站模仿,做区位分析的地图网站,企业官方网站建设如何文章目录 一、JSONModel1.JSONModel的简单介绍2.JSONModel的使用 二、单例类和Block传值 一、JSONModel 1.JSONModel的简单介绍 JSONModel一个第三方库#xff0c;这个库用来将网络请求到的JSON格式的数据转化成Foundation框架下的Model类的属性#xff0c;这样我们就可以直… 文章目录 一、JSONModel1.JSONModel的简单介绍2.JSONModel的使用 二、单例类和Block传值 一、JSONModel 1.JSONModel的简单介绍 JSONModel一个第三方库这个库用来将网络请求到的JSON格式的数据转化成Foundation框架下的Model类的属性这样我们就可以直接通过访问Model类的属性来访问网络请求到的数据。 2.JSONModel的使用 要使用JSONModel库首先需要通过CocoaPods下载第三方库到目标文件中。接着在文件中创建一个Model类并且继承于JSONModel类。根据网络请求的JSON格式数据确定创建的类和属性。 例如JSON数据格式如下 那么就需要在Model类中声明接收数据的协议并实现继承于JSONModel的类这里我声明了storiesModel和top_StoriesModel两个协议并实现继承于JSONModel类的storiesModel和top_StoriesModel类来实现接收网络请求的数据。 GetModel.h protocol storiesModelendprotocol top_StoriesModelend #import JSONModel/JSONModel.h #import JSONModel.h NS_ASSUME_NONNULL_BEGINinterface storiesModel : JSONModel property (nonatomic, copy) NSString* image_hue; property (nonatomic, copy) NSString* title; property (nonatomic, copy) NSString* url; property (nonatomic, copy) NSString* hint; property (nonatomic, copy) NSString* ga_prefix; property (nonatomic, copy) NSArray* images;endinterface top_StoriesModel : JSONModel property (nonatomic, copy) NSString* image_hue; property (nonatomic, copy) NSString* title; property (nonatomic, copy) NSString* url; property (nonatomic, copy) NSString* hint; property (nonatomic, copy) NSString* ga_prefix; property (nonatomic, copy) NSString* image; property (nonatomic, copy) NSString* type; end//设置一个字符串和两个自定义类的数组来接收网络请求的数据interface GetModel : JSONModel property (nonatomic, copy) NSString* date; property (nonatomic, copy) NSArraystoriesModel* stories; property (nonatomic, copy) NSArraytop_StoriesModel* top_stories; endGetModel.m #import GetModel.himplementation GetModel (BOOL)propertyIsOptional:(NSString *)propertyName {return YES; }endimplementation storiesModel(BOOL)propertyIsOptional:(NSString *)propertyName {return YES; } endimplementation top_StoriesModel (BOOL)propertyIsOptional:(NSString *)propertyName {return YES; }end在GetModel.m中使用 (BOOL)propertyIsOptional:(NSString *)propertyName方法来指定模型类中的属性是否为可选的。默认情况下所有的属性都被认为是必需的也就是说在 JSON 数据中必须存在对应的键值。但是也可以重写该方法并返回 YES 或 NO 来指定特定属性是否可以在 JSON 数据中不出现。 二、单例类和Block传值 在iOS开发中一般要通过一些管理类来封装特定的属性或成员变量这时就可以用单例类来实现。原因是单例类在程序运行时只创建一次当程序结束后才被销毁这样会提高运行效率并且降低代码风险但是实现单例类时又需要考虑线程安全问题所以这里用到GCD写法来创建单例类。 在Manager.h中声明类方法 (instancetype)sharedSingleton;在Manager.m中定义一个局部全局变量并实现接口部分声明的类方法。 static Manager* manager nil;(instancetype)sharedSingleton {if (manager nil) {static dispatch_once_t onceToken;dispatch_once(onceToken, ^{manager [[Manager alloc] init];});}return manager; }dispatch_ once _t 使用 dispatch_once 方法能保证某段代码在程序运行过程中只被执行 1 次并且即使在多线程的环境下dispatch _once也可以保证线程安全。 在单例类中要封装网络请求并实现传值因此需要用到Block传值 在Manager.h中定义两个Block块来接收请求到的数据并声明一个方法来封装网络请求 typedef void (^GetModelBlock)(GetModel * _Nullable mainModel); typedef void (^ErrorBlock)(NSError * _Nullable error); - (void)NetWorkGetWithData:(GetModelBlock)mainModelBlock andError:(ErrorBlock)errorBlock;在Manager.m中实现该方法 - (void)NetWorkGetWithData:(GetModelBlock)mainModelBolck andError:(ErrorBlock)errorBlock {//创建一个网络请求NSString *json https://news-at.zhihu.com/api/4/news/latest;json [json stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];NSURL *netWorkDataURL [NSURL URLWithString:json];NSURLRequest *netWorkDataRequest [NSURLRequest requestWithURL:netWorkDataURL];//创建请求会话NSURLSession *netWorkDataSession [NSURLSession sharedSession];//根据会话创建任务NSURLSessionDataTask *netWorkDataTask [netWorkDataSession dataTaskWithRequest:netWorkDataRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {if (error nil) {GetModel *allGetData [[GetModel alloc] initWithData:data error:nil];//使用Block传值mainModelBolck(allGetData);} else {errorBlock(error);}}];//启动任务[netWorkDataTask resume]; }在主函数中 [[Manager sharedSingleton] NetWorkGetWithData:^(GetModel * _Nullable mainModel) {NSLog(%, mainModel.stories[1]);NSLog(获取成功);} andError:^(NSError * _Nullable error) {NSLog(请求失败);}];运行结果如下
http://www.pierceye.com/news/785668/

相关文章:

  • 重庆网站建设哪家强平台如何做推广
  • 安徽省建设安全监督站的网站网站建设公司一般多少钱
  • 服装网站建设策划书3000字软件开发包含网站开发吗
  • 免费网站的建设绵阳网站建设制作
  • 学生处网站建设招标公告网站包括哪些主要内容
  • 成都门户网站建设多少钱聚合广告联盟
  • 坦克大战网站开发课程设计报告软文营销的本质
  • 美食网站开发网站登录验证码是怎么做的
  • 电子商务网站排名辽宁省建设工程信息网业绩公示
  • 天津建设科技杂志的官方网站wordpress cnzz插件
  • 滨州建设网站太原网站建设优化
  • 记事本做网站怎么改字体包装设计模板设计素材
  • 下载软件的网站推荐thinkphp和wordpress
  • 青海省城乡和住房建设厅网站合肥小吃培训网页设计
  • 财经门户网站建设django校园网站开发
  • 泉州网站建设报价广东建设厅网站
  • 建设网站的源代码的所有权wordpress网站打开慢
  • 印度外贸网站有哪些家居小程序源码下载
  • 上海网站建设中心pc官方网站
  • 深圳企业网站制作公司查询西安网站设计哪家好
  • 大埔做网站手机qq邮箱发布了wordpress
  • 寻找南昌网站设计单位网站建设 中企动力医院
  • 中间商可以做网站吗平面广告设计师的工作内容
  • 网站建设用户分析做网站有什么软件
  • 洛阳网站建设启辰网络wordpress怎么破解查看
  • 长沙市网站设计公司厦门建设网站建站
  • 网站做链轮会被惩罚吗网站开发系统
  • 一般做企业网站需要什么资料WordPress情侣博客模板
  • 网站开发教程公司哪些官网用wordpress
  • redis网站开发教程创建app软件