2

OK、私はぬりえアプリを作っています、そしてそれは絵がある場所のビューのスクリーンショットを撮る「保存」ボタンを持っています。

カラーリングする画像が6つあります。イントロページには6つのボタンがあり、それぞれが特定の着色ページにリンクしています。

1つを除いて、[保存]ボタンを含め、すべてが正常に機能しています。すべてのカラーリングビューの内容と機能は同じですが、1つの画像で、[保存]ボタンをクリックするたびにiPadがクラッシュします。

これが私のコードのいくつかです:

ボタンクリック時:

    [self saveScreenshotToPhotosAlbum];

    camFlash = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
    [camFlash setBackgroundColor:[UIColor whiteColor]];
    [camFlash setAlpha:0.0];
    [cbHolder addSubview:camFlash];
    [cbHolder bringSubviewToFront:camFlash];

    [UIView beginAnimations:@"Flash-On" context:NULL];
    [UIView setAnimationDuration:0.2];
    [UIView setAnimationRepeatAutoreverses:NO];
    [camFlash setAlpha:1.0];
    [UIView commitAnimations];

    NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"flash" ofType:@"wav"];
    AVAudioPlayer *flashSFX = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:soundPath] error:NULL];
    flashSFX.volume = 0.5;
    flashSFX.numberOfLoops = 0;
    self->camFlashSFX = flashSFX;
    if ([flashSFX currentTime] != 0) [flashSFX setCurrentTime:0];
    [flashSFX play];

    [self performSelector:@selector(removeFlash) withObject:nil afterDelay:0.2];

フラッシュを削除します。

- (void) removeFlash
{
    [camFlash removeFromSuperview];
}

スクリーンショットの場合:

- (UIImage*)captureView { 
    UIGraphicsBeginImageContext(CGSizeMake(1024, 768));    
    CGContextRef context = UIGraphicsGetCurrentContext();  
    [cbHolder.layer renderInContext:context];  
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext();  
    return img;
}

- (void)saveScreenshotToPhotosAlbum {
    UIImageWriteToSavedPhotosAlbum([self captureView], nil, nil, nil);
}

これは、ぬりえを表示するボタン用です。

uc4 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tpUncolored1.png"]];
    [uc4 setUserInteractionEnabled:YES];
    [uc4 setFrame:CGRectMake(0, 0, 1024, 768)];
    [cbHolder addSubview:uc4];

    clrd4 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tpColored1.png"]];
    [clrd4 setUserInteractionEnabled:YES];
    [clrd4 setFrame:CGRectMake(0, 0, 1024, 768)];
    [cbHolder addSubview:clrd4];

    [UIView beginAnimations:@"fabe-out" context:NULL];
    [UIView setAnimationDuration:1.5];
    [clrd4 setAlpha:0.0];
    [UIView commitAnimations];

    [self performSelector:@selector(cb4) withObject:nil afterDelay:1.5];

そして、私はこのエラーを抱えています:

スレッド5:EXC_BAD_ACCESS(コード= 1、アドレス= 0xd9bbd40)

4

0 に答える 0