//// Block_common.h// memorytest_block//// Created by lv wei on 13-4-27.// Copyright (c) 2013年 lv wei. All rights reserved.//#ifndef memorytest_block_Block_common_h#define memorytest_block_Block_common_htypedefvoid(^output)();#endif声明一个BLOCK作为非成员使用的类//// Block_notmember.h// memorytest_block//// Created by lv wei on 13-4-27.// Copyright (c) 2013年 lv wei. All rights reserved.//#import <Foundation/Foundation.h>@interfaceBlock_notmember : NSObject-(void)output;@end//// Block_notmember.m// memorytest_block//// Created by lv wei on 13-4-27.// Copyright (c) 2013年 lv wei. All rights reserved.//#import "Block_notmember.h"#import "Block_common.h"@interfaceBlock_notmember()@property(nonatomic,retain)NSString*infomation;@end@implementationBlock_notmember@synthesizeinfomation=_infomation;-(id)init{self=[superinit];if(self){self.infomation=@"ksnowlv";}returnself;}-(void)output{outputo=^(){NSLog(@"Block_notmember information:%@",_infomation);};o();}-(void)dealloc{NSLog(@"Block_notmember Object destory");[superdealloc];}@end声明一个BLOCK作为成员使用的类//// Block_member.h// memorytest_block//// Created by lv wei on 13-4-27.// Copyright (c) 2013年 lv wei. All rights reserved.//#import <Foundation/Foundation.h>#import "Block_common.h"@interfaceBlock_member : NSObject-(void)output;-(void)destroy;@end//// Block_member.m// memorytest_block//// Created by lv wei on 13-4-27.// Copyright (c) 2013年 lv wei. All rights reserved.//#import "Block_member.h"@interfaceBlock_member(){output_myOutput;}@property(nonatomic,retain)NSString*infomation;@end@implementationBlock_member@synthesizeinfomation=_infomation;-(id)init{self=[superinit];if(self){self.infomation=@"kair";// NSString* info = _infomation;outputo=^(){NSLog(@"Block_member information:%@",_infomation);};_myOutput=[ocopy];}returnself;}-(void)output{_myOutput();}-(void)destroy{if(_myOutput){[_myOutputrelease];_myOutput=nil;}}-(void)dealloc{NSLog(@"Block_member Object destory");[superdealloc];}@end