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

分栏型网站服装设计网站模板

分栏型网站,服装设计网站模板,大连百度网络推广,wordpress主题制作汉化一、方法交换实现步骤#xff08;实例方法和类方法处理逻辑类似#xff09; 1.检查原类#xff08;要被替换方法的类#xff09;的原实例方法是否存在#xff0c;如果不存在#xff0c;则不交换#xff1b;2.检查新类#xff08;最终被使用的方法所在的类#xff09;的…一、方法交换实现步骤实例方法和类方法处理逻辑类似 1.检查原类要被替换方法的类的原实例方法是否存在如果不存在则不交换2.检查新类最终被使用的方法所在的类的新实例方法是否存在如果不存在则不交换3.检索原实例方法所在的真实父类防止循环调用4.如果原类和新类不是一个类则需要将新类的新实例方法添加到原类1如果添加失败说明该方法已经存在则不需要再做交换2如果添加成功需要从原类重新获取新添加的实例方法否则可能交换失败。5.将原类的新实例方法交换原类的原实例方法。6方法交换的时机可以自己控制确保能够及时交换就可以。7.关键方法class_getInstanceMethod(Class _Nullable cls, SEL _Nonnull name)class_addMethod(Class _Nullable cls, SEL _Nonnull name, IMP _Nonnull imp, const char * _Nullable types) method_exchangeImplementations(Method _Nonnull m1, Method _Nonnull m2) 二、iOS原生网络请求交换范围 1.NSURLConnection2.NSURLSession三、iOS原生网络请求交换步骤以NSURLConnection为例NSURLSession类似。 1.新增一个类声明为NSURLConnection的一个新类别。2.首先需要交换非代理方式的的请求API。1NSURLConnection类有两个(NSData*)sendSynchronousRequest:(NSURLRequest*)request returningResponse:(NSURLResponse* _Nullable* _Nullable)response error:(NSError**)error(void)sendAsynchronousRequest:(NSURLRequest*)request queue:(NSOperationQueue*)queue completionHandler:(void (^)(NSURLResponse* _Nullable response, NSData* _Nullable data, NSError* _Nullable connectionError)) handler;2新方法如下(NSData*)swizzle_sendSynchronousRequest:(NSURLRequest*)request returningResponse:(NSURLResponse* _Nullable* _Nullable)response error:(NSError **)error{//调用原本的方法NSData *resultData [self swizzle_sendSynchronousRequest:request returningResponse:response error:error];return resultData;}(void)swizzle_sendAsynchronousRequest:(NSURLRequest*)request queue:(NSOperationQueue*)queue completionHandler:(void (^)(NSURLResponse* _Nullable swizzle_response, NSData* _Nullable swizzle_data, NSError* _Nullable swizzle_connectionError)) swizzle_handler{//如果回调方法为空则直接返回不做截获处理if (swizzle_handler nil){return [self swizzle_sendAsynchronousRequest:request queue:queue completionHandler:nil];}//调用原本的方法[self swizzle_sendAsynchronousRequest:request queue:queuecompletionHandler:^(NSURLResponse* _Nullable response, NSData* _Nullable data, NSError* _Nullable connectionError){//回调上层swizzle_handler(response, data, connectionError);}];}3.代理方式发送请求的API交换1交换初始化方法并在初始化方法中获取代理对象并交换代理对象的网络代理方法。原方法-(NSURLConnection*)initWithRequest:(NSURLRequest*)request delegate:(nullable id)delegate startImmediately:(BOOL)startImmediately;- (NSURLConnection*)initWithRequest:(NSURLRequest*)request delegate:(nullable id)delegate;新方法-(NSURLConnection*)swizzle_initWithRequest:(NSURLRequest*)request delegate:(nullable id)delegate startImmediately:(BOOL)startImmediately{//设置代理方法交换交换必要的方法即可[self methodsSwizzleForDelegate:delegate];//调用原本的方法return  [self swizzle_initWithRequest:request delegate:delegate startImmediately:startImmediately];}- (NSURLConnection*)swizzle_initWithRequest:(NSURLRequest*)request delegate:(nullable id)delegate{//设置代理方法交换交换必要的方法即可[self methodsSwizzleForDelegate:delegate];//调用原本的方法return  [self swizzle_initWithRequest:request delegate:delegate];;}(2)代理方法交换只列举其中几个可以扩展- (void)swizzle_connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{//调用原本的方法[self swizzle_connection:connection didReceiveResponse:response];}-(void)swizzle_connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{//调用原本的方法[self swizzle_connection:connection didReceiveData:data];}-(void)swizzle_connectionDidFinishLoading:(NSURLConnection *)connection{//调用原本的方法[self id_swizzle_connectionDidFinishLoading:connection];}-(void)swizzle_connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{//调用原本的方法[self id_swizzle_connection:connection didFailWithError:error];}四、请求性能数据采集 请求的整个过程和关键时机都经过我们自己的代码性能指标数据采集不是很简单
http://www.zqtcl.cn/news/798485/

相关文章:

  • 建设网站备案与不备案区别企业网站怎么做排名
  • php mysql的网站开发html网站制作答辩ppt
  • 网站制作有名 乐云践新专家网页制作公司需要什么资质
  • 织梦怎么用框架实现在浏览器的地址栏只显示网站的域名而不显示出文件名电脑网站模板
  • 北京网络营销网站品牌营销增长公司哪家好
  • 网站反链有好处吗稷山网站建设
  • 廊坊网站群发关键词怎么在百度上推广自己的公司信息
  • 网站开发 沈阳免费模板建站
  • 商业性质网站建设步骤wordpress电影网盘
  • 网站的外部推广成都房产网官网
  • 深圳网站建设创想营销北京土巴兔全包装修价格表
  • 怎么发布php网站邯郸建设网站制作
  • 手机网站做多宽的图片wordpress顶部导航栏怎么创建
  • 如何做招聘网站的数据分析安徽黄山旅游攻略
  • 2022建站市场国际新闻直播
  • 茗哥网站建设装饰公司网站规划方案
  • 北京天津网站建设公司做平台网站要多久
  • 做我女朋友的表白句的网站做seo_教你如何选择网站关键词
  • 如何对网站用户分析徐州网站制作如何定位
  • 网站定制生成器龙岗网站设计讯息
  • 镇江市建设工程网站蜘蛛爬取网站
  • 个人备案网站可以做电影站吗微信做的地方门户网站
  • 网站上传根目录美点网络公司网站
  • 长春微信做网站网站开发和设计如何合作
  • 江门网站制作报价买网站不给我备案
  • 太原百度网站快速优化网站 后台 数据 下载
  • 某网站开发项目进度表天元建设集团有限公司赵唐元
  • 网站外链收录很多 内链收录几个西安网站seo优化
  • 网站源码制作网站产品类别顺序如果修改
  • 北京定制网站开发公司浩森宇特本机快速做网站