iOS_21团购_发送请求获取【点评】数据

请求结果简单显示:

用到的点评封装的类:

使用tableView简单展示:

//
//  DealListController.m
//  帅哥_团购
//
//  Created by beyond on 14-8-14.
//  Copyright (c) 2014年 com.beyond. All rights reserved.
//  点击dock上面的【团购】按钮对应的控制器,上面是导航栏,导航栏右边是searchBar,导航栏左边是一个大按钮(TopMenu)(内部由三个小按钮组成<TopMenuItem>)

#import "DealListController.h"
// 导航栏左边是一个大按钮(顶部菜单)
#import "TopMenu.h"

#import "DPAPI.h"
#import "MetaDataTool.h"

#import "Deal.h"

#import "City.h"

@interface DealListController ()<DPRequestDelegate>
{
    // 用于保存服务器返回的所有deals字典,并转成一个个deal对象
    NSMutableArray *_deals;
}

@end

@implementation DealListController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // 1,设置上方的导航栏,右边是搜索bar,左边是一个大的VIEW(内有三个按钮)
    [self addNaviBarBtn];
    _deals = [NSMutableArray array];

}
// 1,设置上方的导航栏,右边是搜索bar,左边是一个大的VIEW(内有三个按钮)
- (void)addNaviBarBtn
{
    // 1.监听城市改变的通知
    kAddAllNotes(dataChange)

    // 2.右边的搜索框
    UISearchBar *s = [[UISearchBar alloc] init];
    s.frame = CGRectMake(0, 0, 210, 35);
    s.placeholder = @"请输入商品名、地址等";
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:s];

    // 3.左边的菜单栏,导航栏左边是一个大按钮(顶部菜单)
    TopMenu *topMenu = [[TopMenu alloc] init];
    // 4.用于点击顶部按钮时,容纳创建出来的底部弹出菜单(包括一个contentView和cover,contentView又包括scrollView和subTitleImgView),本成员是由创建此TopMenu的外部赋值传入, 这里是控制器的view,就是导航栏下面的所有区域

    topMenu.controllerView = self.view;

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:topMenu];
}

// temp -- test
- (void)dataChange
{
    DPAPI *dpapi = [[DPAPI alloc]init];
    log(@"currentCity---%@",[MetaDataTool sharedMetaDataTool].currentCity);
    [dpapi requestWithURL:@"v1/deal/find_deals" params:@{@"city": [MetaDataTool sharedMetaDataTool].currentCity.name} delegate:self];
}
// temp -- test
- (void)request:(DPRequest *)request didFinishLoadingWithResult:(id)result
{
    [_deals removeAllObjects];

    NSArray *arr = result[@"deals"];
    for (NSDictionary *dict in arr) {
        Deal *deal = [[Deal alloc]init];
        [deal setValuesWithDict:dict];
        [_deals addObject:deal];

        // 接下来就可以给tableView提供数据源了
    }
   log(@"--_deals--%@",_deals);
    [self.tableView reloadData];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    log(@"---------numberOfRowsInSection____deals.count  %d",_deals.count);
    return _deals.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellID = @"Beyond";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    if (cell == nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];
    }
    // 设置cell中独一无二的内容
    Deal *deal = [_deals objectAtIndex:indexPath.row];
    cell.textLabel.text = deal.title;
//    cell.imageView.image = [UIImage imageNamed:deal.s_image_url];
    cell.detailTextLabel.text = deal.desc;
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    // 返回cell
    log(@"--cellForRowAtIndexPath---%@",cell.textLabel.text);
    return cell;

}
@end

iOS_21团购_发送请求获取【点评】数据

时间: 2024-08-25 03:53:59

iOS_21团购_发送请求获取【点评】数据的相关文章

iOS_21团购_发送请求【点评】数据

结果表明,一个简单的请求: 用到的点评封装的类: 使用tableView简单展示: // // DealListController.m // 帅哥_团购 // // Created by beyond on 14-8-14. // Copyright (c) 2014年 com.beyond. All rights reserved. // 点击dock上面的[团购]button相应的控制器,上面是导航栏,导航栏右边是searchBar,导航栏左边是一个大button(TopMenu)(内部由

iOS_21团购_通过block对请求工具类的代理方法进行二次封装

最终效果图: [点评]提供的工具类DPAPI 在请求完毕后,使用的是代理机制,当一次请求成功或者失败时,会调用代理的相应方法 为了将点评提供的工具类DPAPI进行二次封装, 再次定义了一个block: typedef  void(^RequestDoneCallBackBlock)(id deals,NSError *err); 该block有两个参数, 分别是成功时,服务器返回的deals字典数组 另一个参数是:请求失败时,服务器返回的失败信息 两个参数分别对应代理的两个方法(即成功.失败时分

iOS_21团购_【运行时】将字典转成对象模型

最终效果图: 核心代码: NSObject+Dict.h // // NSObject+Dict.h // 帅哥_团购 // // Created by beyond on 14-8-14. // Copyright (c) 2014年 com.beyond. All rights reserved. // 使用运行时,将dict转成对象 #import <Foundation/Foundation.h> @interface NSObject (Dict) // 一个对象,调用此方法,参数

iOS_21团购_拼音搜索

最终效果图: 关键代码: 搜索结果控制器: // // SearchResultController.m // 帅哥_团购 // // Created by beyond on 14-8-15. // Copyright (c) 2014年 com.beyond. All rights reserved. // 当搜索框searchBar里面的文字change的时候,会创建本控制器,展示搜索结果列表,本控制器只有唯一一个成员变量,那就是从CityLocationController控制器的sea

iOS_21团购_顶部菜单和弹出菜单联动

最后效果图: 各控件关系图1: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >\ 各控件关系图2: 点击Dock上面的buttonDockItem, 创建经导航控制器包装的DealListController, 而且加入到主控制器的右側空间 // // Deal

iOS_21团购_地图功能

最终效果图: 右下角的回到用户位置按钮: MapController控制器, 是主控制器左侧dock上面的[地图]按钮对应的控制器, 继承自ShowDealDetailController, 因此,自动拥有了展示团购详情控制器的功能 // // MapController.h // 帅哥_团购 // // Created by beyond on 14-8-14. // Copyright (c) 2014年 com.beyond. All rights reserved. // dock上面的

iOS_21团购_真正封装的团购详情控制器

最终效果图: DealDetailController控制器 // // DealDetailController.h // 帅哥_团购 // // Created by beyond on 14-8-20. // Copyright (c) 2014年 com.beyond. All rights reserved. // 真正的通过xib显示一个订单的详情的控制器 #import <UIKit/UIKit.h> @class Deal; @interface DealDetailContr

iOS_21团购_定位并根据经纬度,解析出城市名

// // LocationTool.m // 帅哥_团购 // // Created by beyond on 14-8-22. // Copyright (c) 2014年 com.beyond. All rights reserved. // #import "LocationTool.h" #import <CoreLocation/CoreLocation.h> #import "City.h" #import "MetaDataTo

iOS_21团购_UICollectionView的基本使用

最终效果图: 代码片段: DealListController继承自UICollectionViewController self.view已经包含了一个UICollectionView 并且数据源和代理已经是当前控制器self // // DealListController.m // 帅哥_团购 // // Created by beyond on 14-8-14. // Copyright (c) 2014年 com.beyond. All rights reserved. // 点击do