从服务器上加载数据(包括图片)

// 从服务器上加载数据

-(void) loadDataFromServer

{

    NSString *strurl =[NSStringstringWithFormat:@"%@/menus.php",HTTP_SERVER];

    NSURL *url = [NSURL URLWithString:strurl];

    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

    NSMutableDictionary *postDic = [[NSMutableDictionary allocinit];

    //getMenusList 请求数据

    [postDic setObject:@"getMenusList" forKey:@"action"];

    

    NSData *postData = [NSJSONSerialization dataWithJSONObject:postDicoptions:NSJSONWritingPrettyPrinted error:nil]; //data是字符串

    

    NSString *postString = [[NSString allocinitWithData:postDataencoding:NSUTF8StringEncoding];//data格式的postdata转换成string格式

    

    [request setPostValue:postString forKey:@"data"];  //传值

    [request setCompletionBlock:^{

        //阻塞块可以吧整个函数作为变量,传到setCompletionBlock

        NSDictionary *dic = [NSJSONSerializationJSONObjectWithData:request.responseDataoptions:NSJSONReadingMutableContainers error:nil];

        //把服务器返回的json字符串的data转化成dictionary

        

        if([[dic objectForKey:@"statusID"isEqualToString:@"0"])

        {

            NSArray *arr = [dic objectForKey :@"reArray"];

            NSDictionary *dic = [[NSDictionary alloc]init];

            for(dic in arr)

            {

                NSString *fasttypeStr = [dic objectForKey:@"MType"];

                if([fasttypeStr isEqualToString:@"快餐"])

                {

                    [self.tableArray addObject:dic];

                         //[self.tableArray addObject:[arr objectAtIndex:i]];

                    [self startDownLoadImageFromServer];

                          //[_tableView reloadData];

                }

                //

            }

            

        }

        else

        {

            NSString *msg = [dic objectForKey:@"msg"];

            UIAlertView *alertV = [[UIAlertView allocinitWithTitle:@"提示"message:msg delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];

            [alertV show];

            [alertV release];

        }

        [_tableView reloadData];

        NSLog(@"%@",request.responseString);

    }]; //返回数据

    

    [request setFailedBlock:^{

        

    }];

    

    [request startAsynchronous];

    [postString release];

}


//开始下载图片

-(void) startDownLoadImageFromServer

{

    for (NSDictionary *dic in self.tableArray)

    {

        NSString *imgurl = [dic objectForKey:@"MImage"];

        NSString *imageUrlStr = [NSStringstringWithFormat:@"%@/%@",HTTP_SERVER,imgurl];//HTTP_SERVER是定义的宏,imageUrlStr是服务器上图片的地址

        NSURL *url = [NSURL URLWithString:imageUrlStr];

        ASIHTTPRequest *requst = [ASIHTTPRequest requestWithURL:url];

        

        [requst setCompletionBlock:^{

            

            UIImage *imageData = [UIImage imageWithData:requst.responseData];

            if (!imageData)

            {

                return;

            }

            NSMutableDictionary *dic2 = [NSMutableDictionarydictionaryWithDictionary:dic];

            [dic2 setObject:imageData forKey:@"image2"];

            int inx = [self.tableArray indexOfObject:dic];

            

            if(inx != NSNotFound//如果找到inx(因为刷新后tablearray里的地址变了,inx就为-1,说明没找到)

            {

                [self.tableArray replaceObjectAtIndex:inx withObject:dic2];

                //user.userImage = [UIImage imageWithData:requst.responseData];//responseData就是图片数据

                [_tableView reloadData];

            }

        }];//请求下载

        [requst startAsynchronous];

    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值