我已经阅读了很多有关@synthesize调用的内容。关于它的用途,...
所以我做了一个测试,结果给了我一种奇怪的感觉。
让我解释一下......
@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);
}
#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
所以...这不奇怪吗?
答案 0 :(得分:4)
在你的合成调用中,你将bbtest分配给aaTest(注意大写字母T)。这与最新的
不一样