私はアプリで作業しており、そこでビデオ録画を行っています。今私がしているのは、画像をキャプチャしてからビデオを作成することです。コードは次のとおりです
- (void) drawRect:(CGRect)rect {
NSDate* start = [NSDate date];
CGContextRef context = [self createBitmapContextOfSize:self.frame.size];
NSLog(@"context value %@",context);
[self.layer renderInContext:context];
CGImageRef cgImage = CGBitmapContextCreateImage(context);
UIImage* background = [UIImage imageWithCGImage: cgImage];
CGImageRelease(cgImage);
self.currentScreen = background;
if (_recording) {
float millisElapsed = [[NSDate date] timeIntervalSinceDate:startedAt] * 1000.0;
[self writeVideoFrameAtTime:CMTimeMake((int)millisElapsed, 1000)];
}
float processingSeconds = [[NSDate date] timeIntervalSinceDate:start];
delayRemaining = (1.0 / self.frameRate) - processingSeconds;
[self performSelectorInBackground:@selector(setNeedsDisplay) withObject:nil];
}
問題は、メソッドが再帰的に呼び出され、記録を停止すると Exc_Bad_Access が返されることです。
デバイスでのシミュレータまたはボットのクラッシュで正常に動作します。この問題を解決するにはどうすればよいですか?