Pergunta

Eu li muitas coisas sobre a chamada @synthesize.Sobre seu uso, ...
Fiz um teste e o resultado me deu uma sensação estranha. Deixe-me explicar ...

Permite escrever em um objeto .h

@interface AnObject : NSObject {
    NSString* aaTest;
}

@property(nonatomic, retain) NSString* bbTest;

-(void)log;

Depois, em seu .m

@synthesize bbTest = aaTest;

-(void)log {
    NSLog(@"Inside var : %@", aaTest);
    NSLog(@"Inside property : %@", self.bbTest);
}

Em outro .m, vamos escrever:

#import "AnObject.h"

então em um método:

    AnObject* testCtrl = [[AnObject alloc] init];
    testCtrl.bbTest = @"Some string";
    NSLog(@"Outside property : %@", testCtrl.bbTest);
    [testCtrl log];

Estamos certos de que aqui, incluindo apenas o .h, a chamada de síntese não é conhecida do outro objeto.Olhando para o Log, ele dá:

Outside property : Some string
Inside var : Some string
Inside property : Some string

Então ... Não é estranho?

Foi útil?

Solução

Em sua chamada de sintetização, você atribui bbtest a aaTest (observe o T maiúsculo).Isso não é o mesmo que aatest

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top