FrizzleFur
4/17/2017 - 5:03 AM

Block循环引用

Block循环引用

typedef void(^blk_t)(void);

@interface Person : NSObject
{
    blk_t blk_;
}

@property (nonatomic, weak) NSArray *array;
@end

@implementation Person

- (instancetype)init
{
    self = [super init];
    blk_ = ^{
        NSLog(@"array = %@",_array);//循环引用的警告提示
    };
    return self;
}

/*
还是会有循环引用的警告提示,因为循环引用的是self和block之间的事情,
这个被Block持有的成员变量是strong还是weak都没有关系,
而且即使是基本类型(assign)也是一样。
*/