A simple category on NSObject that allows you to execute block when object is deallocated
Latest commit 3f2559a Mar 28, 2012 Krzysztof Zabłocki Update README.md
Failed to load latest commit information.
SFExecuteOnDealloc ability to remove block before dealloc happens Mar 28, 2012
SampleProject adeded readme Mar 14, 2012
.gitignore ignore Mar 14, 2012
LICENCE.txt read me and license Mar 15, 2012
README.md Update README.md Mar 28, 2012



SFExecuteOnDealloc is a simple category on NSObject that allows you to execute arbitrary blocks when object gets dealloced. Keep in mind that order of execution is random when you add multiple blocks.

Supported OS & SDK Versions

  • iOS 4.0 (Xcode 4.3, Apple LLVM compiler 3.1)

ARC Compatibility

Automatically works with both ARC and non-ARC projects through conditional compilation. There is no need to exclude NSObject+SFExecuteOnDealloc files from the ARC validation process, or to convert NSObject+SFExecuteOnDealloc using the ARC conversion tool.


To use the NSObject+SFExecuteOnDealloc category in an app, just drag the category files (demo files and assets are not needed) into your project. Preferably include NSObject+SFExecuteOnDealloc.h in your Prefix.pch file.


- (void*)performBlockOnDealloc:(void(^)(void))aBlock;

Will call selected block when an object is deallocated. Returns blockKey that can be used to cancel selected block.

- (void)cancelDeallocBlockWithKey:(void*)blockKey;

Cancels selected block from executing when object is deallocated.

Sample use

__block NSObject *weakSelf = someTestObject;
[someTestObject performBlockOnDealloc:^{
  NSLog(@"this is block for object %@", weakSelf);