2011-04-11 2 views
1

백그라운드 뷰에서 UIView를 업데이트 할 수 없다는 것을 알고 있습니다.(iphone) 백그라운드 스레드에서 UIView의 데이터 멤버에 액세스하는 것이 안전합니까?

UIView 자손의 사용자 지정 데이터 멤버 변수에만 액세스 할 때 해당 규칙이 적용되는지 확실하지 않습니다.

나는 배경 스레드에서 "번호"변수를 여기

@interface MyView : UIView 
{ 
NSNumber* number; 
} 

@property (retain) NSNumber* number; 

접근 않습니다 있다고 가정 규칙 "배경 스레드에서 어떤 UIView의 업데이트를"위반?

그들이 원자 (기본값)로 표시하는 경우 문제가 발생하지 않아야 백그라운드 스레드에 서브 클래스의 속성에 액세스하면

답변

1

감사드립니다. 드로잉을 유발하는 UIView 메서드를 호출하지 않도록해야합니다.

+1

요청할 때 일부 속성 (즉, UIView의 프레임)이 계산되므로주의해야하지만 문제가 발생할 수 있습니다 (하지만 괜찮을 것입니다). – deanWombourne

+0

view.subviews는 어떨까요? – eugene

+1

addSubview를 호출하지 않고 모든 하위 뷰가 removeFromSuperview를 호출하지 않으면 view.subviews가 정상이 될 수 있습니다. 그러나 나는 그것을 추천하지 않을 것이다. –

관련 문제