RXSwift 如何为具有 return 值的委托方法创建包装器
RXSwift How to create wrapper for delegate method with return value
我在 RXSwift 中有一个委托包装器
func tableView(tableView: UITableView,movedRowAtIndexPath sourceIndexPath: NSIndexPath,toIndexRowPath destinationRowIndexPath: NSIndexPath)
他们看起来像
public var rx_itemRowMoved: ControlEvent<ItemMovedEvent> {
let source: Observable<ItemMovedEvent> = rx_delegate.observe("tableView:movedRowAtIndexPath:toIndexRowPath:")
.map { a in
return ((a[1] as! NSIndexPath), (a[2] as! NSIndexPath))
}
return ControlEvent(events: source)
}
但是我有 return 值的委托
func selectionViewForTableView(tableView: UITableView,destinitionCell cell:UITableViewCell,toIndexRowPath destinationRowIndexPath: NSIndexPath) -> UIView
如何为此委托实现包装器?
没有办法做到这一点。您可以直接在您的委托所有者中实现此方法。您也可以参考 RxTableViewReactiveArrayDataSource
的 CellFactory
。它将方法更改为阻塞。
我在 RXSwift 中有一个委托包装器
func tableView(tableView: UITableView,movedRowAtIndexPath sourceIndexPath: NSIndexPath,toIndexRowPath destinationRowIndexPath: NSIndexPath)
他们看起来像
public var rx_itemRowMoved: ControlEvent<ItemMovedEvent> {
let source: Observable<ItemMovedEvent> = rx_delegate.observe("tableView:movedRowAtIndexPath:toIndexRowPath:")
.map { a in
return ((a[1] as! NSIndexPath), (a[2] as! NSIndexPath))
}
return ControlEvent(events: source)
}
但是我有 return 值的委托
func selectionViewForTableView(tableView: UITableView,destinitionCell cell:UITableViewCell,toIndexRowPath destinationRowIndexPath: NSIndexPath) -> UIView
如何为此委托实现包装器?
没有办法做到这一点。您可以直接在您的委托所有者中实现此方法。您也可以参考 RxTableViewReactiveArrayDataSource
的 CellFactory
。它将方法更改为阻塞。