'아웃렛'에 해당되는 글 2건

  1. 2010.08.11 iPhone] 아웃렛 (Outlet)
  2. 2010.06.22 [Objective-C] 아웃렛
아이폰어플개발정보2010. 8. 11. 17:35
iPhone] 아웃렛 (Outlet)
용어설명 :

Xcode 프로젝트 내의 컨트롤러 클래스는 아웃렛outlet 이라 불리는 특별한 인스턴스 변수를 사용하여 nib 파일 안의
객체를 참조할 수 있다. 아웃렛은 nib 파일 내부의 객체를 가리키는 포인터라 생각하면 된다.

레 이블의 텍스트를 변경하려 한다고 가정할때에 아웃렛을 하나 선언하고 아룻렛이 레이블 객체를 가리키게 함으로써
코드상에서 아웃렛을 사용하여 레이블의 텍스트를 변경할 수 있다.

사용 방법 :

프로젝트명 ViewController.h

#import <UIKit/UIKit.h>

@interface Button_FunViewController : UIViewController {
    IBOutlet    UILabel        *statusText; // 아웃렛 선언
}
@property (retain, nonatomic) UILabel *statusText;

- (IBAction)buttonPressed:(id)sender;

@end

주의 사항 :

인 터페이스 빌더는 아웃렛을 할당할 때 자동으로 생성된 변장자 메서드를 사용한다.
따라서 메모리 누수를 피하기 위해서 아웃렛을 릴리즈하는 일은 매우 중요하다.

프로젝트명ViewController.m

- (void)dealloc {
    [statusText release]; // 릴리즈
    [super dealloc];


출처 : http://blog.naver.com/PostView.nhn?blogId=noonkoki&logNo=70082151564

'아이폰어플개발정보' 카테고리의 다른 글

iPhone] 프러퍼티 (Property)  (0) 2010.08.11
iPhone] 액션 (Action)  (0) 2010.08.11
iPhone] 아웃렛 (Outlet)  (0) 2010.08.11
HINSTANCE 와 HWND  (0) 2010.08.11
모듈 == Module  (0) 2010.08.11
프로토 타입 == Proto Type  (0) 2010.08.11
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 22. 09:54
[Objective-C] 아웃렛

아웃렛은 IBOutlet 키워드를 사용하여 선언하는 인스턴스 변수이다.

컨트롤러 헤더 파일에서 다음과 같이 아웃렛을 선언한다.

@property (nonatomic, retain) IBOutlet UIButton *myButton;

IBOutlet은 컴파일러와 관련하여 아무일도 하지 않는다.  단지 IBOutlet의 목적은 인터페이스 빌더에게 xib(혹은 nib)파일 안의 객체와 연결되는 인스턴스 변수라고 알려주는 힌트를 제공하는 것 뿐이다.

IBOutlet은 전처리문으로 정의되어 있어 이것은 빌드타임에 전처리기에 번역되어 결과는 컴파일러에게 넘겨지게 된다. 다라서 컴파일러는 실제 코드상에서 IBOutlet을 볼 수 없다.

이러한 이유 때문에 인터페이스 빌더 객체와 연결을 원하는 모든 인스턴스 변수 앞에는 반드시 IBOutlet 키워드를 붙여야 한다.

인터페이스 빌더를 열었을때, 인터페이스 빌더는 프로젝트 헤더 파일들로부터 이 키워드를 검색하며 IBOutlet 키워드가 붙은 변수들은 내부 객체와 연결되게끔 도와준다.

nonatomic

멀티쓰레드 환경이 아닌 경우 nonatomic 속성을 지정해서 퍼포먼스를 조금 향상 시킬 수 있다고 한다.

일반적으로 유저인터페이스(UIKit Framework)의 객체에 접근 할 경우 nonatomic 속성을 지정한다.

nonatomic 속성을 지정하지 않으면 디폴트로 멀티쓰레드에서 안전한 접근자(accessors, mutators) 메소드를 컴파일시 생성.

retain

컴파일러에게 이 속성을 통해 할당하는 모든 객체에 retain메세지를 보내게 한다.


이전에는 다음과 같이 IBOutlet을 사용하였다.

IBOutlet UIButton *myButton;

이후 애플에서 제공하는 샘플코드에는 아래처럼 프로퍼티 선언의 다음으로 옮겨졌다.

@property (nonatomic, retain)IBOutlet UIButton *myButton;

두가지 방법 모두 허용되는 방법이며 어떠한 방법을 쓰더라도 큰 차이 없이 동일하게 동작한다.

한가지 차이점이 있다면 인스턴스 변수에 내포되어 있는 이름과 달리 다른 이름의 프로퍼티를 선언하였을경우 반드시 IBOutlet 키워드를 프로퍼티 뒤에 붙여야 정상적인 작동을 한다.



출처 : http://blog.naver.com/PostView.nhn?blogId=khagaa&logNo=30085425642
Posted by 오늘마감

댓글을 달아 주세요