转:http://blog.youkuaiyun.com/hherima/article/details/38620175
@interface ViewController(){
NSObject* _instanceObj;
}
@implementation ViewController
- (void) viewDidLoad
{
_instanceObj = [[NSObject alloc] init];
static NSObject* __staticObj = nil;
__globalObj = [[NSObject alloc] init];
__staticObj = [[NSObject alloc] init];
NSObject* localObj = [[NSObject alloc] init];
NSLog(@"localObj count = %d", _objc_rootRetainCount(localObj));
__block NSObject* blockObj = [[NSObject alloc] init];
typedef void (^MyBlock)(void);
MyBlock aBlock = ^{
NSLog(@"%@", __globalObj);
NSLog(@"%@", __staticObj);
NSLog(@"%@", _instanceObj);
//NSLog(@"%@", localObj);
NSLog(@"localObj count = %d", _objc_rootRetainCount(localObj));
NSLog(@"%@", blockObj);
};
//aBlock = [aBlock copy];
aBlock();
NSLog(@"%d", _objc_rootRetainCount(__globalObj));
NSLog(@"%d", _objc_rootRetainCount(__staticObj));
NSLog(@"%d", _objc_rootRetainCount(_instanceObj));
NSLog(@"%d", _objc_rootRetainCount(localObj));
NSLog(@"localObj count = %d", _objc_rootRetainCount(localObj));
NSLog(@"%d", _objc_rootRetainCount(blockObj));
...