If I try to access an "object variable" with a __block storage type:
@interface {
__block float x;
}
in a block:
@implementation ... {
...
-(void) func: {
^(...) {
x = 0;
}
}
I get a "retain cycle" warning, unless I create a __block reference to self and use it like:
-(void) func: {
__block id s = self;
^(...) {
s->x = 0;
}
}
Why is it possible to declare a variable "__block" in an interface?