A tool for monitoring objc message called.
Tangentw - 基于isa-swizzling实现消息监听,扩展响应式框架
Add MessageListener
in your Cartfile
:
github "TangentW/MessageListener"
Run carthage update
to build the framework and drag into your project.
Add MessageListener
in your Podfile
:
use_frameworks!
pod "MessageListener"
Run the following command:
$ pod install
- Download the source code.
- Drag files NSObject+Listener.h and NSObject+Listener.m into your project.
Use method 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
The MIT License (MIT)