0

私は ios プログラミングの初心者で、プロジェクトで autorelease を設定しましたが、今は autorelease 機能に問題があります。私は私のコードを示し、これを避けるために私をサポートしてくれることを願っています

- (void)initPhotoImage
{
    photoImage = [[MyPhotoImageView alloc] initWithFrame:CGRectMake(5, 30, 0, 0)];
    photoImage.photoViewController = self;
    [photoView addSubview:photoImage];

    UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipeLeft:)];
    gesture.direction = UISwipeGestureRecognizerDirectionLeft;
    [photoView addGestureRecognizer:gesture];
    UISwipeGestureRecognizer *gesture1 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipeRight:)];
    gesture1.direction = UISwipeGestureRecognizerDirectionRight;
    [photoView addGestureRecognizer:gesture1];

}

-(void)didSwipeLeft:(UIGestureRecognizer *)gestureRecognizer {

    if(self.nextViewController != NULL){
        [UIView animateWithDuration:1 animations:^{
            self.view.frame = CGRectMake(-1*self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height);
        }];
        NSLog(@"next");
    }else{
        NSLog(@"next view is null");
    }
}

同じクラスのこの2つの関数、init関数でself.nextViewControllerを出力します。アドレスを出力しますが、swip関数では、self.nextViewControllerを再度出力しますが、nullアドレスを出力します。定義した.hファイルで保持します

@property (retain, nonatomic) MyPhotoViewController *nextViewController;
4

1 に答える 1

-2

これを変える

if(self.nextViewController != NULL)

if(self.nextViewController != nil)
于 2013-02-27T03:56:28.517 に答える