Skip to content

Instantly share code, notes, and snippets.

@misterwell
Forked from maxgalbu/NSObject+Debounce.h
Last active October 29, 2016 17:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save misterwell/3d12ee490a8c9e7cc6393bbc796e08c5 to your computer and use it in GitHub Desktop.
Save misterwell/3d12ee490a8c9e7cc6393bbc796e08c5 to your computer and use it in GitHub Desktop.
@interface NSObject (Debounce)
- (void)debounce:(SEL)action delay:(NSTimeInterval)delay;
- (void)debounce:(SEL)action object:(id)obj delay:(NSTimeInterval)delay;
@end
@implementation NSObject (Debounce)
- (void)debounce:(SEL)action object:(id)obj delay:(NSTimeInterval)delay
{
__weak typeof(self) weakSelf = self;
[NSObject cancelPreviousPerformRequestsWithTarget:weakSelf selector:action object:obj];
[weakSelf performSelector:action withObject:obj afterDelay:delay];
}
- (void)debounce:(SEL)action delay:(NSTimeInterval)delay
{
[self debounce:action object:nil delay:delay];
}
@end
{
"name": "NSObject+Debounce",
"version": "1.0.0",
"summary": "Debounce selector for specific delay",
"homepage": "https://gist.github.com/berzniz/8618806",
"license": "MIT",
"authors": "berzniz",
"source": {
"git": "https://gist.github.com/misterwell/3d12ee490a8c9e7cc6393bbc796e08c5",
"commit": "3d12ee490a8c9e7cc6393bbc796e08c5"
},
"platforms": {
"ios": "6.0"
},
"source_files": [
"*.{h,m}"
],
"requires_arc": true
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment