- (BOOL)xxx:(id)xxx shouldXXX : 用来控制允不允许执行某些行为
- (void)xxx:(id)xxx willXXX
- (void)xxx:(id)xxx didXXXX
1.首先会调用shouldXXX
2.shouldXXX返回NO,那么就不会调用willXXX和didXXXX方法
3.shouldXXX返回YES,那么就会按顺序调用willXXX、didXXXX方法
4.如果没有实现shouldXXX,那么就会按顺序调用willXXX、didXXXX方法