iPhone - 从课堂外使用Synthesize和ivar?

时间:2011-03-22 13:48:56

标签: iphone properties instance-variables accessor synthesizer

我已经阅读了很多有关@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 个答案:

答案 0 :(得分:4)

在你的合成调用中,你将bbtest分配给aaTest(注意大写字母T)。这与最新的

不一样