Objective-C: variables de instancia fuera de alcance en el depurador

Tengo una superclase y una subclase, las cuales definen variables de instancia.

Esquema aproximado de la superclase:

/* GenericClass.h */
@interface GenericClass : NSObject {
    /* some variables */
}
@end
/* GenericClass.m */
@implementation GenericClass
    /* ... */
@end

Esquema de la subclase:

/* SpecificClass.h */
#import "GenericClass.h"
@interface SpecificClass : GenericClass {
    NSMutableString *str;
}
/* SpecificClass.m */
#import "SpecificClass.h"
@implementation SpecificClass
- (void)aMethod {
    //Debugger reports str as out of scope
    str = [[NSMutableString alloc] initWithCapacity:100];
    //Works fine:
    self->str = [[NSMutableString alloc] initWithCapacity:100];
    //Doesn't compile as I haven't defined @property/@synthesize:
    self.str = [[NSMutableString alloc] initWithCapacity:100];
}

Cuando estoy usando clases que heredan directamente de NSObject, uno no necesita el puntero de self-. Tenga en cuenta que no hay ningún objeto con el nombre str definido en la GenericClass principal. Entonces, mi pregunta es, ¿por qué está fuera de alcance cuando str no se hace referencia como self-> str? El código en sí mismo funciona, pero no puedo leer la variable con el depurador

Respuestas a la pregunta(1)

Su respuesta a la pregunta