画面にいくつかのアニメーションがあります。スプライト シートを使用して CAlayers を介してそれらすべてをアニメーション化しています。サイズが 4 MB のすべてのアセットをviewDidAppear
メソッドでダウンロードしています。
シミュレーターと iPhone の両方でアニメーションを表示できます。しかし、iPad でメモリ警告が表示されます。
私のデバイスのクラッシュ レポートでは、例外の種類が次のように表示されています。
EXC_BAD_ACCESS(SIGSEGV)
次のコードを使用してアニメーション化しています。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png", imageNameStr]]; UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];
CGImageRef richterImgPl1 = [UIImage imageWithContentsOfFile:getImagePath].CGImage;
NSArray *arrayWithSprites = [img spritesWithSpriteSheetImage:img
spriteSize:CGSizeMake(230,350)];
CGSize fixedSize = CGSizeMake(230, 350);
MCSpriteLayer *richterPl1 = [MCSpriteLayer layerWithImage:richterImgPl1 sampleSize:fixedSize] ;
richterPl1.frame = imgView.frame;
richterPl1.position = imgView.layer.position;
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"sampleIndex"];
anim.fromValue = [NSNumber numberWithInt:1];
anim.toValue = [NSNumber numberWithInt:arrayWithSprites.count];
anim.duration = sleepTime;//[imgView.animationImages count] * 0.0500;
anim.repeatCount = 1;
[richterPl1 addAnimation:anim forKey:nil];
[self.view.layer addSublayer:richterPl1];
この問題を解決するためのアイデアや手がかりはありますか?