zoukankan      html  css  js  c++  java
  • (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];
    
    }
    对上述的代码,有任何疑问,可以在下方留言。 也可以给我发邮件咨询:673658917@qq.com 或者是直接加qq:673658917 转载请注明出处,谢谢合作。 睡觉舒服,那是给死人准备的,加油吧,一年后你会感谢现在的自己的。
  • 相关阅读:
    HDOJ 1207 汉诺塔II
    [转]写代码的小女孩
    POJ Subway tree systems
    HDOJ 3555 Bomb (数位DP)
    POJ 1636 Prison rearrangement (DP)
    POJ 1015 Jury Compromise (DP)
    UVA 10003
    UVA 103 Stacking Boxes
    HDOJ 3530 Subsequence
    第三百六十二、三天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/lishanshan/p/5200329.html
Copyright © 2011-2022 走看看