2011-07-27 2 views
0

여러 UIViews, UIButtons 등이 있으며 처음 사용할 때 특정 코드를 각각 실행하려고합니다.UI 그래픽 요소에 대한 자체 호출 초기화 자

UIButton *title의 경우 처음으로 title.frame으로 전화를 걸면 먼저 내 버튼이 nill이 아님을 확인하는 설정기를 호출하고, 할당 후 초기화 버튼을 누르면 내 설정 @ "TITLE"등의 제목입니다.

어떻게해야합니까?

답변

3

게으른 초기화에 대해 말하고있는 것 같지만, title.frame 대신에 접근 자 메서드 self.title.frame을 사용해야합니다. 이와 같이 getter 메소드를 구현할 수 있습니다.

- (UIButton *)title { 
    if (!title) { 
     // Allocate the button 
     // Set the button title 
    } 
    return title; 
} 
+2

이 호출 인 'self.title.frame'이 @Deepak처럼 작동하는 이유를 더 명확히하기 위해 조금 더 자세히 설명하고 있습니다. 이것은이 호출이'[[self title] frame];으로 ​​컴파일되기 때문입니다. 'self [self title] setFrame : newFrame];으로 ​​컴파일됩니다.''self.title.frame = newFrame; '과 같이 프레임을 설정하는 경우와 동일합니다.''getter가 먼저 호출되고 있으므로 지연 초기화 할 수 있습니다. –

+0

@ Paul.s 추가 설명을 주셔서 감사합니다! – Alex

관련 문제