用于监控objc消息调用的工具。
使用listen
方法。
[self listen: @selector(touchesBegan:withEvent:) with:^(NSArray * _Nonnull parameters) {
NSLog(@"Touches began");
}];
listen(#selector(ViewController.touchesBegan(_:with:))) { _ in
print("Touches began")
}
[self listen: @selector(tableView:didSelectRowAtIndexPath:) in:@protocol(UITableViewDelegate) with:^(NSArray * _Nonnull parameters) {
if (parameters.count != 2) return;
NSIndexPath *indexPath = parameters[1];
NSLog(@"Did selected row %ld", (long)indexPath.row);
}];
listen(#selector(UITableViewDelegate.scrollViewDidScroll(_:)), in: UITableViewDelegate.self).subscribe(next: { parameters in
guard let tableView = parameters.first as? UITableView else { return }
print(tableView.contentOffset.y)
})
_tableView.delegate = self
MIT许可证(MIT)