2013-10-23 2 views
0

UIVIEW의 하위 클래스 인 사용자 정의보기를 만드는 방식에 문제가 발생하지 않았는지 확인하고 싶습니다. 하위 뷰로 UISlider.사용자 정의보기 및 속성 '인스턴스'Varioables

필자는 Properties가 공용 객체이고 @roperty를 사용하는 .h에 정의되어 있으며 인스턴스 변수 등은 .m 파일에 정의되어 있습니다. 이 단순한 논리를 기반으로 UISlider를 올바르게 정의하는 방법이 있습니다. 올바르게 작동하지만 정확한 느낌이 들지만 메모리 문제가 발생하고 올바른 방법일까요? 나는 .h 파일과 .m 파일의 다음에 정의 된 것이 없다.

#import "myWidgetView.h" 

@implementation myWidgetView { 
    UISlider  *eraseSlider; 
} 


- (id)initWithCoder:(NSCoder *)aDecoder { 

    if (self = [super initWithCoder:aDecoder]) 
    { 
     eraseSlider = [[UISlider alloc] init]; 
     [self addSubview:eraseSlider]; 
    } 
    return self; 
} 

답변

1

속성은 공개 된 것이 아니라 비공개로 설정할 수도 있습니다. 그들의 사용법은 조금 개인적인 취향이다. 개인적으로, 나는 모든 인스턴스 변수를 사용하지 않고 모든 것에 속성을 사용합니다. 나는 다른 사람들이 같은 방식으로 일하지 않는다는 것을 안다.

인스턴스 변수는 private이 아닙니다. 공용/개인은 실제로 .h/.m 파일에있는 것으로 제어됩니다. 속성과 인스턴스 변수는 둘 다 정의 할 수 있습니다.

속성의 이점은 메모리 및 스레드 관리 및 액세스 제어 측면에서 사용자의 의도를 설명한다는 것입니다. 일반 인스턴스 변수는 아무 것도 알려주지 않습니다. 또한 속성은 명시된 의도에 따라 접근 자 메서드를 생성합니다.

당신이 가진 것은 (아주 최소한의 예로서) 괜찮습니다. 사용중인 각 구문에서 제공하는 기능을 이해하고 클래스 구성 방법을 결정하십시오.

관련 문제