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"

次に、1つのメソッドに:

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

ここでは、.h だけを含めて、synthesize 呼び出しが他のオブジェクトから知られていないことは問題ありません。ログを見ると、次のようになります。

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 に答える