(whh仅供自己参考)进行ip网络请求的步骤

这个过程大致是这个样子:

1 添加通知

2 发送网络请求 里边有一个发送通知的操作

3 执行发送通知的具体操作

代码如下:

1 在VC添加通知

 [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(receivingYM1:)
                                                 name:@"YM1" object:nil];
   

2 在SYNDispatchProcessor.m 中进行发送通知

-(void) delayTimeGCDbuild
{

//    NSLog(@"主线程 %@", [NSThread  currentThread]);
    //间隔还是1秒
    uint64_t interval = 1 * NSEC_PER_SEC  / 100 ;
    //创建一个专门执行timer回调的GCD队列
//    dispatch_queue_t queue = dispatch_queue_create("my queue", 0);
     dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    //创建Timer
    _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
    //使用dispatch_source_set_timer函数设置timer参数
    dispatch_source_set_timer(_timer, dispatch_time(DISPATCH_TIME_NOW, 0), interval, 0);
    
    //设置回调
    dispatch_source_set_event_handler(_timer, ^()
    {
        [self.arrayLock lock];
        if([protocolmutableArrays count]>0)
        {
            NSData* nData = [protocolmutableArrays objectAtIndex:0];
           // NSLog(@"Hava received datas is----- :%@",[self nDataToGbkString:nData]);
            NSData* d = [nData subdataWithRange:NSMakeRange(5, 3)];
            
            NSString* aStr = [[NSString alloc] initWithData:d encoding:NSASCIIStringEncoding];
           NSLog(@"在这里进行类型的判断:%@",aStr);
            {
                
                //在这里发送通知
                [[NSNotificationCenter defaultCenter] postNotificationName:aStr object:[nData subdataWithRange:NSMakeRange(10, nData.length-10)]];

            }
            
            [protocolmutableArrays removeObjectAtIndex:0];
        }
       [self.arrayLock unlock];
        
    });

3 执行发送通知的事件

//发送完通知之后接收到漫画数据
- (void) receivingYM1:(NSNotification*) anotification
{
    //收到的是漫画的4个cell的大图跟一些相关信息
    NSData* nsData =  [anotification object];
    NSString *string = [[NSString alloc]initWithData:nsData encoding:NSUTF8StringEncoding];
    NSLog(@"nsdata:%@",string);
    [self performSelectorOnMainThread:@selector(updateResgContollerYM1:) withObject:nsData waitUntilDone:YES];
}
//更新幽默坊漫画ui
-(void) updateResgContollerYM1:(id) data
{
    //将data转换成字典类型
    NSDictionary* YM1Dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
    
    //用数组进行接收
    NSMutableArray *commicArr = [YM1Dict valueForKey:@"comicList"];
    
    //将数据存到字典中
    self.FirComicDic = [commicArr objectAtIndex:0];
    self.SndComicDic = [commicArr objectAtIndex:1];
    self.ThdComicDic = [commicArr objectAtIndex:2];
    self.FourthComicDic = [@{@"comicContent":@"酒鬼",@"comicId":@"4"} mutableCopy];

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一“技”之长

iOS通过NSUserDefaults实现简单的应用间数据传递

NSUserDefaults是用于保存应用程序设置,应用信息等轻量级数据的的一个类,其本质是将数据写为plist文件的形式保存在本地。在IOS中,系统为每一个应...

9920
来自专栏陈满iOS

iOS复习中有关SDWebImage可能知识点总结(2)

分为内存缓存(利用SDImageCache类的NSCache属性),磁盘缓存(利用NSFileManager),和操作缓存(利用runtime关联的字典属性)。...

23610
来自专栏遊俠扎彪

CentOS 5.6 下使用 vsFTPd 架设 FTP Server

主要配置文件/etc/vsftpd/vsftpd.conf,配置如下:

24950
来自专栏岑志军的专栏

OC和Swift互相跳转

15840
来自专栏转载gongluck的CSDN博客

第14章 高级I/O函数

设置套接字时间限制: 1、使用alarm函数和SIGALRM信号 2、使用由select提供的时间限制 3、使用SO_RCVTIMEO和SO_SNDTIM...

30040
来自专栏美团技术团队

ReactiveCocoa中潜在的内存泄漏及解决方案

ReactiveCocoa是GitHub开源的一个函数响应式编程框架,目前在美团App中大量使用。用过它的人都知道很好用,也确实为我们的生活带来了很多便利,特别...

54280
来自专栏技术总结

DWIntrosPage 简单定制引导页

下面摘取部分代码 DWIntrosPageContentViewController

14050
来自专栏陈满iOS

[iOS源码笔记]·第三方网络图片处理框架:SDWebImage网络下载及缓存管理策略

typedef void(^SDExternalCompletionBlock)(UIImage * _Nullable image, NSError * _N...

15310
来自专栏iOS122-移动混合开发研究院

ReactiveCocoa,最受欢迎的iOS函数响应式编程库(2.5版),没有之一!

简介 项目主页: ReactiveCocoa 实例下载: https://github.com/ios122/ios122 简评: 最受欢迎,最有价值的iOS响...

27980
来自专栏慎独

UIViewController生命周期分析

18040

扫码关注云+社区

领取腾讯云代金券