Besi Besi - 6 months ago 21
Objective-C Question

Nested blocks and references to self

I have a block wherein I use

self
so I declare a weak reference to self:

__weak MyClass *weakSelf = self;


Now my questions:


  1. I get an error where I define
    weakSelf
    and I don't understand what this should mean.:

    weak attribute can not be specified on an automatic variable

  2. Inside my block I pass
    weakSelf
    to another block and I am not sure if I now have to do the same thing again like so:

    __weak MyClass *weakWeakSelf = weakSelf;


    And then pass
    weakWeakSelf
    to that block?


Answer

This is most likely occurring as you are targeting down to iOS 4. You should change it to be

__unsafe_unretained MyClass *weakWeakSelf = weakSelf;
Comments