このコードがシミュレーターで実行され、実際のデバイスでクラッシュするのはなぜですか?
円を描く非常に単純なコードがあります。コードはサブクラスUIView
化され、シミュレーターで正常に実行されます (iOS 5.1 と iOS 6.0 の両方)。
Circle.h
#import <UIKit/UIKit.h>
@interface Circle : UIView
@end
Circle.m
#import "Circle.h"
@implementation Circle
-(CGPathRef) circlePath{
UIBezierPath *path = [UIBezierPath bezierPath];
[path addArcWithCenter:self.center radius:10.0 startAngle:0.0 endAngle:360.0 clockwise:YES];
return path.CGPath;
}
- (void)drawRect:(CGRect)rect
{
CGPathRef circle = [self circlePath];
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddPath( ctx, circle );
CGContextStrokePath(ctx);
}
@end
iOS 5.1.1 を実行している iPad2 でコードを実行しようとするとEXC_BAD_ACCESS(code=EXC_ARM_DA_ALIGN,address=0x31459241)
、行にエラー ( ) が表示されCGContextAddPath( ctx, circle );
ます。
私は問題が何であるかの手がかりがありません。この問題を解決するために誰かが私を正しい方向に向けることができますか?