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

企业网站能起到什么作用天津seo排名收费

企业网站能起到什么作用,天津seo排名收费,网站做调查问卷给钱的兼职,做外国的网站卖东西在之前的项目里,我们都是把网络请求写在viewController的viewDidLoad,而实际中使用的时候并不能这么简单,对于不同的需要,我们需要有不同的网络请求。所以我们可以用单例模式创建一个全局的Manager类,用实例Manager来执…
  • 在之前的项目里,我们都是把网络请求写在viewController的viewDidLoad,而实际中使用的时候并不能这么简单,对于不同的需要,我们需要有不同的网络请求。所以我们可以用单例模式创建一个全局的Manager类,用实例Manager来执行网络请求方法,顺便用Manager传递请求数据,在model中完成数据解析。

使用上一篇JSONModel中的代码为例,我们现在创建一个新的Manager类,然后将网络请求的相关操作封装进去,并使用block传值将网络请求的结果传给要用的地方:


#import "JSONModel.h"
#import "QianTaoJSONModel.h"//用了block传值
//_Nonnull 是 Objective-C 中的一个关键字,用于标记变量、参数或返回类型。它表示某个对象或指针的值不能为 nil
//相反,Objective-C 还有一个 _Nullable 关键字,用于标记某个对象或指针的值可以为 nil。
typedef void (^DataBlock)(QianTaoJSONModel * _Nonnull mainModel);
typedef void (^ErrorBlock)(NSError * _Nonnull error);NS_ASSUME_NONNULL_BEGIN@interface Manager : JSONModel+ (instancetype)sharedManager;
- (void)NetWorkWithData: (DataBlock)dataBlock error: (ErrorBlock) errorBlock;@endNS_ASSUME_NONNULL_END

#import "Manager.h"static Manager *manager;
@implementation Manager+ (instancetype)sharedManager {if (!manager) {static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{manager = [Manager new];});}return manager;
}- (void)NetWorkWithData:(nonnull DataBlock)dataBlock error:(nonnull ErrorBlock)errorBlock {NSString *urlString = [[NSString alloc] init];urlString = @"https://news-at.zhihu.com/api/4/news/latest";urlString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];NSURL *url = [NSURL URLWithString:urlString];NSLog(@"%@", urlString);NSURLRequest *request = [NSURLRequest requestWithURL:url];NSURLSession *session = [NSURLSession sharedSession];//根据会话创建任务NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {if (error == nil) {QianTaoJSONModel *t = [[QianTaoJSONModel alloc] initWithData:data error:nil];dataBlock(t);} else {errorBlock(error);}}];[dataTask resume];
}@end

以上就是Manager的封装。
这时候,我们就可以直接使用封装好的网络请求了。在viewController中,我们先声明一个test方法,在test方法中我们创建Manager对象并打印该对象的数据。在[viewDidLoad]中我们调用该方法即可:


#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];[self test];
}- (void)test {[[Manager sharedManager] NetWorkWithData:^(QianTaoJSONModel * _Nonnull mainModel) {NSLog(@"%@", mainModel.top_stories[0]);} error:^(NSError * _Nonnull error) {NSLog(@"ERROR");}];
}@end

结果:在这里插入图片描述

http://www.15wanjia.com/news/29722.html

相关文章:

  • 建设购物平台网站百度一下首页网址
  • 上海网站建设觉策动力新闻最新消息
  • 营销型网站的目标厦门seo管理
  • 做网站可以找设计公司吗今日最新新闻摘抄
  • 网站用什么技术做的外贸网站建设
  • 大庆市建设网站网络营销意思
  • 宝安中心站网站建设优化推广
  • 淘宝装修可以做代码的网站有哪些网店买卖有哪些平台
  • 苏州网站建设网站建设免费seo
  • 糖果网站是李笑来做的吗永久免费自助建站软件
  • 企业网站怎么做推广国内seo公司哪家最好
  • 网站域名备案密码江阴网站制作公司
  • 媒约网网址是多少东莞seo关键词排名优化排名
  • 中小企业官网网站改版seo建议
  • 网站如何做reference网络运营培训哪里有学校
  • 四平网站制作灯塔网站seo
  • 高安网站建设公司app开发多少钱
  • 网站确定关键词 如何做湖南株洲疫情最新情况
  • wordpress帐号导入seo刷关键词排名软件
  • 播放视频 wordpress抖音视频排名优化
  • php建站平台千锋教育北京校区
  • 广州建设银行网站连云港seo优化公司
  • 家乡网站建设策划书全媒体运营师报名入口
  • wpbus-d4 wordpress theme新乡seo顾问
  • 门户网站建设方式怎么推广自己的店铺
  • 榆林免费做网站重庆网络营销
  • 作品 上海高端网站设计b站视频推广怎么买
  • 设计师可以做兼职的网站有哪些seo如何优化排名
  • 手机网站出现广告百度做广告
  • e通网网站建设企业网站建设方案书