oc82--成员变量使用copy修饰
// // Person.h #import <Foundation/Foundation.h> typedef void (^myBlock)(); @interface Person : NSObject //@property (nonatomic, retain) NSString *name; @property (nonatomic, copy) NSString *name; // 注意: 如果是block使用copy并不是拷贝, 将pBlock所指向的代码块从栈转移到堆中。block在堆中,使用外界对象的时候,会对外界对象的计数器加1, @property (nonatomic, copy) myBlock pBlock; //@property (nonatomic, retain) myBlock pBlock; @end // // Person.m #import "Person.h" @implementation Person - (void)dealloc { // 由于block使用外界对象会对里面的对象加1,因此要在Person释放的时候把里面使用的对象也释放。 // 只要给block发送一条release消息, block中使用到的对象d也会收到该消息。 Block_release(_pBlock); NSLog(@"%s", __func__)