Objective c 方法Swizzling-请解释此实现中的属性映射
我正在研究一种开源的刷新控件的方法,它在UIViewController类别上使用生命周期方法,如下所示:Objective c 方法Swizzling-请解释此实现中的属性映射,objective-c,method-swizzling,Objective C,Method Swizzling,我正在研究一种开源的刷新控件的方法,它在UIViewController类别上使用生命周期方法,如下所示: - (void)INBPullToRefreshView_viewWillAppear:(BOOL)animated { [self setClearNavigationBar:YES]; [self INBPullToRefreshView_viewWillAppear:animated]; UITableView *tableView = self.pullTo
- (void)INBPullToRefreshView_viewWillAppear:(BOOL)animated
{
[self setClearNavigationBar:YES];
[self INBPullToRefreshView_viewWillAppear:animated];
UITableView *tableView = self.pullToRefresh.tableView;
tableView.contentOffset = tableView.contentOffset;
self.pullToRefresh.showPullToRefresh = YES;
}
当调用viewwillbeen
时,我发现它映射到上述方法,调用[self-inbpultorefreshview_-viewwillbeen:animated]代码>将映射到原始的视图将出现
但是,下面的操作是什么
tableView.contentOffset = tableView.contentOffset;
下面是控件的示例。我怀疑作者试图使用setContentOffset:
的副作用,可能是强制重新计算。但是作者似乎在这个项目上很活跃,所以为什么不在github问题上询问intmain呢
当然,标准的警告是,这种方法swizzling非常危险和脆弱。我怀疑作者试图使用setContentOffset:
的副作用,可能是强制重新计算。但是作者似乎在这个项目上很活跃,所以为什么不在github问题上询问intmain呢
当然,标准的警告是,这种方法非常危险和脆弱。我相信你是在问一些与swizzling本身无关的问题
设置contentOffset属性将导致向对象的代理发送scrollViewDidScroll:消息。可能有一个更干净的方法来实现这一点(或者至少它应该有一个评论)我相信你在问一些与swizzling本身无关的问题
设置contentOffset属性将导致向对象的代理发送scrollViewDidScroll:消息。可能有一个更干净的方法来实现这一点(或者至少应该有一个评论)