ビュー(画像)を次の方法で初期化します。
Image *myImageView = [[Image alloc]init];
myImageView.myId = randomImageNumber;
[myImageView initWithImage:myImage];
Imageクラスで、Log(LOG1)を実行し、以前に設定されたrandomImageNumberを取得します。後で、まったく同じクラスで、2番目のLog(LOG2)を実行します。2番目のログに値がなくなったのはなぜですか?
ここに、クラスイメージの実装ファイルがあります。
@synthesize myId;
-(id) initWithImage: (UIImage *) anImage
{
NSLog(@"LOG1%d",myId);
if ((self = [super initWithImage:anImage]))
{
self.userInteractionEnabled = YES;
}
return self;
}
}
-(void)touchesBegan...
....
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"LOG2%d",myId);
}
「returnself」は、ヘッダーファイルで宣言し、初期化時に設定されたmyIdを空にします。どうすればそれを防ぐことができますか?
私のヘッダーファイルは次のようになります。
@interface Image : UIImageView
{
int myId;
}
@property (assign) int myId;
@end