2013-02-25 2 views
0

Objective-C 프로그래밍을 처음 접했을 때 나는 항상 나를 혼란에 빠뜨린 질문이 있습니다. 왜 헤더 파일에 변수를 선언해야합니까?Objective-C로 선언하기

@implementation MyViewController 

- (void)viewDidLoad 
{ 
    NSString *myString; 
} 

답변

4

첫 번째 선언은 모든 인스턴스 메서드에 사용할 수있는 인스턴스 변수입니다 : 단지합니다 (하는 .m 파일에) 여기를 선언하지 왜

@interface MyViewController : UIViewController 
{ 
    NSString *myString; 
} 

. 두 번째 방법은 한 가지 방법에 국한됩니다.

그러나하는 .m 파일에서 인스턴스 변수를 선언 할 수 있습니다 :

@implementation MyViewController { 
    NSString *myString; 
} 

이 사실이 노출 될 필요가 없습니다 인스턴스 변수를 선언 할 수있는 좋은 방법입니다. 다른 클래스에서 사용할 수 있어야하는 .h 파일의 내용 만 선언하십시오.

0

두 가지 질문이 있습니다.

간단히 말하면 헤더 파일 (.h)은 구현에 대해 알지 못해도 클래스가 무엇인지 알 수있는 공개 게이트웨이입니다. 헤더 파일에는 다른 클래스에서 알아야 할 모든 항목 (예 : 공용 메소드, 속성)이 포함되어야합니다.

구현 파일에서 쉽게 선언 할 수 있지만 다른 클래스는 이에 대해 알 수 없습니다.

두 번째로, 제공 한 예제에서 NSString *myString;을 viewDidLoad 메서드에 넣었습니다. 즉, 그러한 변수는 해당 메소드의 범위에서만 사용할 수 있습니다. 다른 사람이 액세스 할 수있는 것은 없습니다.