day11-购物车06-清空和购买

购物车01-搭建基本骨架
购物车02-圆角按钮处理
购物车03-显示数据
购物车04-加号减号点击处理
购物车05-通知的应用

NSNotification - 通知
NSNotificationCenter - 通知中心
模拟通知


是什么?

思路:

'清空购物车'怎么实现呢?

  • 总价清零
  • cell清零
    将'购买数量'清零, 刷新单元格
    - (IBAction)cleanBuy:(id)sender {
    self.totalLabel.text = @"0"; // 总价清零
    //数据源,里面更改'购买数量'
    for (Wine *wine in self.wineData) {
       wine.count = 0;
    }
    //刷新
    [self.tableView reloadData];
    }
    

注意: reloadData方法,其实就是调用tableView: cellForRowAtIndexPath:方法。
'购买'怎么实现呢?

  • 购买的状态
    购买总价为零,'购买'的状态为不可用 !
    清除购物车时,'购买'的状态为不可用 !
    • 获取 ➖ 通知时, 判断'总价'(total)是否为0。
      为 0 则, "购买按钮" 不可使用!
      -(void)minusTotal:(NSNotification *) notice {
          //'购买按钮'的状态
          self.shop.enabled = total > 0;
      }
      
    点击➕ 按钮时,"购买按钮"可用 !
    • 获取➕ 通知时, "购买按钮"可用
      -(void)plusTotal:(NSNotification *) notice {
       self.shop.enabled = YES;
       }
      
  • 点击购买,打印"购买产品","购买数量"
     - (IBAction)shopClick:(id)sender {
     // 获取购买的cell
     for (Wine * wine in self.wineData) {
       if(wine.count){// 购买数量 >0 时
           NSLog(@"商品: %@",wine.name);
           NSLog(@"购买了 %d 件",wine.count);
         } } }
    

性能问题

购买一个商品,却需要将整个列表都遍历一遍.
这样做性能很差,且不实际。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。