tableview单元格

时间:2017-12-28 09:27:54

标签: ios generics swift3 associated-types

我在tablview单元格(NESTED TABLEVIEW)中有tableview单元格(OrderMasterCell

OrderMasterCell已在多个视图控制器中重用

假设ViewController1有tableview,在tableview单元格(VC1Cell)中有一个tableview,其中有单元格OrderMasterCell(嵌套tableivew)

假设ViewController2有tableview,在tableview单元格(VC2Cell)中有一个tableview,其中包含单元格OrderMasterCell(嵌套tableivew)

我希望自定义委托将didSelectRow OrderMasterCell代理传递给VC1Cell。或VC2Cell

使用该委托我想将VC1或VC2作为参数传递给Cell 为此,我创建了以下

@objc protocol  OrderSubItemTableDelegate:class {
     associatedtype cellType // cell type either vc1 or vc2
     @objc optional func tableViewDidSelectRowAt(object:cellType)
}

当我尝试创建

class VC1Cell: UITableViewCell,UITableViewDataSource,UITableViewDelegate {
      weak var delegate:OrderSubItemTableDelegate?

  }

抛出编译时错误

  

协议'OrderSubItemTableDelegate'只能用作通用约束,因为它具有Self或相关类型要求

清除问题

如何创建具有associatedtype的协议属性? 比如weak var delegate:OrderSubItemTableDelegate?

如果有人能帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

您以错误的方式确认协议。

void connect_socket(ConnectHandler connect_handler,
                    ASIO::ip::tcp::resolver::iterator host_iterator)
{ ASIO::async_connect(socket_.lowest_layer(), host_iterator, connect_handler); }