iPhone - Sintetizar e usar ivar fora da classe?
-
28-10-2019 - |
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?
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