__weak NSBlockOperation *secondBlockOperation = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"%@",secondBlockOperation);
NSLog(@"this is the second block");
}];
__block __weak NSBlockOperation *secondBlockOperation = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"%@",secondBlockOperation);
NSLog(@"this is the second block");
}];
__block NSBlockOperation *secondBlockOperation = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"%@",secondBlockOperation);
NSLog(@"this is the second block");
}];
这是我无法理解的代码。我发现 __block 会导致内存泄漏。所以 __block __weak 进入我的脑海。好的,根本没有泄漏。但是当我自定义一个带有块的类时作为一个强大的属性,像这样 __weak Person *one = nil; one = [[Person alloc] initWithBlock:^{ NSLog(@"%@",one); }]; 弱分配警告显示。
老实说,我不明白当 __block 和 __weak 一起使用时的结果。__block 值将是一个指向带有转发指针和值指针的结构的指针。所以弱用于指向 __block 结构的指针或__block 结构中的指针。为什么 __weak NSBlockOperation *secondBlockOperation 没有警告??!