2011-07-04 7 views
1

nib 파일의 객체를 참조하는 일반적인 방법은 IBOutlet 객체를 만든 다음 Interface Builder에서 파란색 선으로 연결하는 것입니다.IBOutlet 또는 UIView를 만드시겠습니까?

그냥 Lynda.com에서 동영상을 보았습니다. 그 대신에 트레이너가 헤더 파일에 UIView 개체를 만들고 Interface Builder의 UIView 개체에 연결했습니다.

내 질문은 무엇입니까 : IBOutlet 개체를 사용하는 이점은 무엇입니까? 단순히 IB의 개체 클래스와 동일한 개체를 사용하는 대신 무엇입니까? 차이점이 있습니까?

답변

4

IBOutlet은 Interface Builder에 대한 힌트 일뿐입니다. IBOutlets는 무엇이든 될 수 있습니다. 위의 예에서 UIView, UIButton, UITextView

@property (nonatomic, retain) IBOutlet UIView * Foo; 

는 푸 무엇인가? IBOutlet 또는 UIView? 모두입니다. 그러나 귀하의 질문은 그것을 허용하지 않습니다.

당신은 여기에 애플 문서를 체크 아웃 할 수 있습니다 : 그들은 더 함께 IBOutlet의 역할을 설명하는 경우 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCTutorial/06Controller/06Controller.html

을 :

객체가 메시지를 전송하여 응용 프로그램에서 다른 객체와 통신 할 수

아웃렛에. 사용자 인터페이스 텍스트 필드와 버튼 모델 개체 (사용자의 경우 보통 클래스)에도 적용 객체 자체 개체 : 출구는 애플리케이션에서 어떤 오브젝트가 참조 할 수있다. 아웃렛은 인터페이스 빌더에서 이 될 수 있기 때문에 특별한 인스턴스 변수입니다.

그리고 :

참고 : 함께 IBOutlet은 널 정의 된 매크로 C의 전처리 컴파일시에 제거 . Interface Builder는 을 사용하여 콘센트 선언을 식별하므로 콘센트를 시각적으로 연결할 때 표시 할 수 있습니다. 요약

:

IBOutlets 거의 아무것도 참조 할 수 있습니다. Interface Builder에 대한 힌트 일 뿐이므로 XIB를로드 할 때 값을 설정할 수 있습니다. 사실, 텍스트 IBOutlet은 인터페이스 빌더 세계 외부에서 거의 의미가 없으므로 Interface Builder를 돕는 것 이외의 다른 목적으로는 완전히 작동하지 않기 때문에 최종 제품에서 제거됩니다.

다시 돌아가서 IBOutlets으로 연결 한 다른 것들을 확인해보십시오. 실제로는 실제 유형이 있다는 것을 알게 될 것입니다.

+0

만약 우리가 IBOutlets을 어떻게 만들고 언제 메모리가 할당되는지 알고 싶습니까? – Dev

2

IBOutlet는 IB에게 "이봐,이게 콘센트가되어야 해!"라고 표시하는 키워드 일뿐입니다. 실제로는 객체 유형이 아닙니다. 전 처리기로 말 그대로 지워집니다. 그러나 콘센트의 유형이 UIVIew 인 경우 IB는 UIView 유형의 콘센트에만 연결될 수 있도록 보장합니다.

관련 문제