iOS讲解迷惑深入浅出之开启子线程请求网络

17 篇文章 0 订阅
17 篇文章 0 订阅

- (void)requestCityDataWithBlock:(void(^)(NSArray *array))block
{
    
    // 开启子线程
    dispatch_async(dispatch_get_global_queue(0, 0), ^{
       
        
        NSString *str = @"http://api.XXX.com/v1/metadata/get_cities_with_deals?appkey=42960815&sign=6AFD15FED56B37F265210060C38B776D55EF8148";
        
        
        self.cityArray = [NSMutableArray array];
        
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:str] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0];
        
        
        [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
            
            NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
            
            self.cityArray = dic[@"cities"];
            
            // 回到主线程更新UI(把字符串传递过去)
            dispatch_async(dispatch_get_main_queue(), ^{
                block(self.cityArray);
            });
            
        }];
        
    });
 
}


在controller中 实现单例中的 方法

  [[CityManager shareManager] requestCityDataWithBlock:^(NSArray *array) {
        
        self.dataArray = [NSMutableArray arrayWithArray:array];
        [self.tableView reloadData];
    }];






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值