UI1_HTTP下载

//  DataModel.h

//  UI1_HTTP下载

//

//  Created by zhangxueming on 15/7/17.

//  Copyright (c) 2015年 zhangxueming. All rights reserved.

//



#import <Foundation/Foundation.h>



@interface DataModel : NSObject



@property (nonatomic, copy)NSString *name;

@property (nonatomic, assign)NSInteger downloads;



@end





//  DataModel.m

//  UI1_HTTP下载

//

//  Created by zhangxueming on 15/7/17.

//  Copyright (c) 2015年 zhangxueming. All rights reserved.

//



#import "DataModel.h"



@implementation DataModel



- (NSString *)description

{

    return [NSString stringWithFormat:@"name = %@ downloads = %li", _name, _downloads];

}



@end

 

//  AppDelegate.m

//  UI1_HTTP下载

//

//  Created by zhangxueming on 15/7/17.

//  Copyright (c) 2015年 zhangxueming. All rights reserved.

//



#import "AppDelegate.h"

#import "ViewController.h"

@interface AppDelegate ()



@end



@implementation AppDelegate





- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.

    ViewController *root = [[ViewController alloc] init];

    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:root];

    self.window.rootViewController = nav;

    self.window.backgroundColor = [UIColor whiteColor];

    return YES;

}

 

//  ViewController.h

//  UI1_HTTP下载

//

//  Created by zhangxueming on 15/7/17.

//  Copyright (c) 2015年 zhangxueming. All rights reserved.

//



#import <UIKit/UIKit.h>



@interface ViewController : UITableViewController





@end



//

//  ViewController.m

//  UI1_HTTP下载

//

//  Created by zhangxueming on 15/7/17.

//  Copyright (c) 2015年 zhangxueming. All rights reserved.

//



#import "ViewController.h"

#import "DataModel.h"



//www.baicom.com

//http协议: 超文本传输协议  ftp://

//报文

//HttpURL格式:

//http://  协议类型

//iappfree.candou.com 主机地址

//:8080 端口号

///free/applications/limited? 主机执行程序文件路径

//currency=rmb&page=1  主机执行程序需要的参数 每个参数之间用&隔开



@interface ViewController ()

{

    NSMutableArray *_dataList;

    //NSMutableData *_data;

}

@end



@implementation ViewController



- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    _dataList = [NSMutableArray array];

    

    [self loadDataWithPage:4];

}



//http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1



//客户端    服务器



- (void)loadDataWithPage:(NSInteger)page

{

    NSString *urlString = [NSString stringWithFormat:@"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=%ld", page];

    

    NSURL *url = [NSURL URLWithString:urlString];

    //下载数据

    NSString *dataString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

    //NSLog(@"dataString = %@", dataString);

    

    //转换成data

    NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding];

    //json解析

    id result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

    if ([result isKindOfClass:[NSDictionary class]]) {

        //字典

        NSArray *app = [result objectForKey:@"applications"];

        //NSLog(@"app= %@", app);

        //[_dataList addObjectsFromArray:app];

        for (NSDictionary *dict in app) {

            DataModel *model = [[DataModel alloc] init];

            NSString *appName = [dict objectForKey:@"name"];

            NSNumber *downloads = [dict objectForKey:@"downloads"];

            model.name  = appName;

            model.downloads = [downloads integerValue];

            [_dataList addObject:model];

        }

        NSLog(@"dataList = %@", _dataList);

    }

    else if([result isKindOfClass:[NSArray class]])

    {

        //数组

    

    }

}



#pragma mark   ---UITableViewDataSource---



- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

    return 1;

}



- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

    return _dataList.count;

}



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    static NSString *reuseId = @"cellId";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseId];

    if (!cell) {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseId];

    }



    DataModel *model = (DataModel *)_dataList[indexPath.row];

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    cell.textLabel.text = model.name;

    cell.detailTextLabel.text =[NSString stringWithFormat:@"下载次数:%li",model.downloads];

    return cell;

}







- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}



@end

 

你可能感兴趣的:(http)