V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gugogo
V2EX  ›  问与答

被 cell 复用折磨惨了, iOS 大牛帮我看看怎么回事啊

  •  
  •   gugogo · 2016-04-20 09:51:53 +08:00 · 2544 次点击
    这是一个创建于 3141 天前的主题,其中的信息可能已经有所发展或是发生改变。
    被 cell 复用折磨惨了, iOS 大牛帮我看看怎么回事啊
    http://pan.baidu.com/s/1mhNwNf6
    16 条回复    2016-04-20 12:14:52 +08:00
    dcty
        1
    dcty  
       2016-04-20 10:31:38 +08:00
    下了代码看了一下,想不明白现在的人为什么要这么写.
    gugogo
        2
    gugogo  
    OP
       2016-04-20 10:35:18 +08:00
    @dcty 不是我写的 我只是想修改一下 但是突然遇到 bug 了 明明知道什么问题 但是无从下手 啊。。。。。。
    jayzjj000
        3
    jayzjj000  
       2016-04-20 10:40:34 +08:00
    竟然还要手动去下代码。。。懒癌犯了不想下怎么办
    anerevol
        4
    anerevol  
       2016-04-20 10:45:55 +08:00
    看了下,里面的代码是没有问题的啊,是被你改出来的问题?
    a412739861
        5
    a412739861  
       2016-04-20 10:48:12 +08:00
    @jayzjj000 是啊,放 github 上多方便……
    rulerstorm
        6
    rulerstorm  
       2016-04-20 10:59:49 +08:00
    这样问问题都有人理。。。 V 友真是耐心善良,赞
    anerevol
        7
    anerevol  
       2016-04-20 11:03:24 +08:00
    MainTableViewCell 里面,注释掉[self showOrderNumbers:self.number];
    - (IBAction)addButton:(id)sender {
    self.number =[self.goodsNumber.text intValue];
    self.number +=1;
    self.plusBlock(self.number,YES);
    // [self showOrderNumbers:self.number];
    }

    MainViewController 里面,-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 函数里面添加一行,大概在 139 行后
    bself.shoppcartview.OrderList.objects = self.ordersArray;
    [bself.shoppcartview updateFrame:self.shoppcartview.OrderList];
    [bself.shoppcartview.OrderList.tableView reloadData];
    // 添加下面这行
    [bself.maintable reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];

    然后你再想想你怎么改的代码,如果还不能明白的话,那我就爱莫能助了。
    XVXVXXX
        8
    XVXVXXX  
       2016-04-20 11:07:48 +08:00
    我跑了下 Demo ,好像没你那个 GIF 里面的复用问题? =。= 另外代码还是放 github 上吧
    gugogo
        9
    gugogo  
    OP
       2016-04-20 11:35:15 +08:00
    @XVXVXXX
    @a412739861
    @anerevol
    @dcty
    @rulerstorm
    不知道什么原因 github 一直上传不了 只能用 osChina 了
    https://git.oschina.net/gugogo/shopCart.git
    gugogo
        10
    gugogo  
    OP
       2016-04-20 11:35:51 +08:00
    gugogo
        11
    gugogo  
    OP
       2016-04-20 11:42:18 +08:00
    lxian2
        12
    lxian2  
       2016-04-20 11:47:46 +08:00
    什么问题啊,运行挺正常的额
    gugogo
        13
    gugogo  
    OP
       2016-04-20 11:52:16 +08:00
    @lxian2 选中一个商品 向上拖动 然后就那个数值就没了 你看下载那个 gif 文件
    DSKcpp
        14
    DSKcpp  
       2016-04-20 11:52:22 +08:00
    把商品数量写到 model 里
    你现在等于没有保存
    lxian2
        15
    lxian2  
       2016-04-20 12:12:55 +08:00
    你用的 _dataArray 给 cell 当作 model, 可是在 cell.plusBlock 里面根本没有 update 这个 array

    而且这个 OrderModel *model = [[OrderModel alloc]initWithDictionary:[item[@"goods"] objectAtIndex:indexPath.row]]; 这个 _dataArray 里面根本就没有 orderCount
    lxian2
        16
    lxian2  
       2016-04-20 12:14:52 +08:00
    感觉你是吧东西弄混了 你的_dataArray 看起来是用来初始化 model 的(初始化商品信息),后面你就不应该用这个 _dataArray 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   997 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:20 · PVG 05:20 · LAX 13:20 · JFK 16:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.