This could work fine if we use token objects to execute the blocks, ie:
```objective-c
- (void)myActionDelayed
{
    static NSString *token = @"my action";
    [NSObject cancelPreviousPerformBlockRequestsWithTarget:token];
    [token performBlock:^{
        doSomething();
    } afterDelay:DELAY];
```