0

我已经阅读了很多关于 @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

所以……这不是很奇怪吗?

4

1 回答 1

4

在您的综合调用中,您将 bbtest 分配给 aaTest(注意大写 T)。这与 aatest 不一样

于 2011-03-22T13:52:45.483 回答