AFAIK, __blockused when you change the address inside the block that the variable points to (declared outside the block).
__block
But what if I change the value the variable points to, but the pointer remains unchanged? For example, what if I have NSMutableArray *arrayand I just do [array addObject:object]inside the block? In this case, I do not change the pointer array, but I change the value that it points to. So should I use __blockwhen declaring NSMutableArray *array?
NSMutableArray *array
[array addObject:object]
array
__block, .
.. :
NSArray* foo;
__block, foo. , foo - , " , NSArray". foo - 64- 32- , . , __block. , __block.
foo
NSArray
, , __block addObject: , foo.
addObject:
- foo = (expression);, __block.
foo = (expression);
( , , OO ... " " )