UIView 서브 클래스에서 CALayer를 하위 레이어로 추가하려고합니다. 그러나 init 메소드 내에 하위 레이어를 추가하면 다른보기 나 창에보기를 추가 할 때 EXC_BAD_ACCESS
이됩니다. .UIView init 내에서 CALayer 하위 레이어 추가하기
초기화 방법
- (id)initWithTitle:(NSString *)title message:(NSString *)message
{
if ((self = [super init]))
{
self.title = title;
self.message = message;
self.alertLayer = [[CALayer alloc] init];
self.layer.cornerRadius = kCORNER_RADIUS;
self.layer.shadowRadius = 3.0;
self.layer.shadowColor = [UIColor blackColor].CGColor;
self.layer.shadowOffset = CGSizeMake(15, 20);
self.layer.shadowOpacity = 1.0;
self.alertLayer.delegate = self;
self.alertLayer.masksToBounds = YES;
self.alertLayer.cornerRadius = kCORNER_RADIUS;
[self.layer addSublayer:self.alertLayer]; // This line of code seems to cause EXC_BAD_ACCESS
}
return self;
}
EXC_BAD_ACCESS
가보기 컨트롤러 또는 UIWindow 내부 [self.view addSubview:alertView]
를 호출 한 후에 발생한다.
'alertLayer' 속성에 사용하는 메모리 관리 의미는 무엇입니까? – jlehr