iPhone - Синтезировать и использовать ivar вне класса? - PullRequest
0 голосов
/ 22 марта 2011

Я прочитал много вещей о вызове @synthesize.О его использовании, ...
Итак, я сделал тест, и его результат вызывает у меня странное чувство.Позвольте мне объяснить ...

Позволяет написать в объекте .h

@interface AnObject : NSObject {
    NSString* aaTest;
}

@property(nonatomic, retain) NSString* bbTest;

-(void)log;

Затем в его .m

@synthesize bbTest = aaTest;

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

В другой .m, давайте напишем:

#import "AnObject.h"

затем в один метод:

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

Мы в порядке, что здесь, включая только .h, вызов синтеза не известен от другогообъект.Глядя на журнал, он дает:

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

Итак ... Разве это не странно?

1 Ответ

4 голосов
/ 22 марта 2011

В вашем синтезирующем вызове вы назначаете bbtest aaTest (обратите внимание на заглавную T).Это не то же самое, что Aatest

...