2011-04-26 4 views
12

가능한 중복 :
Where do I have to declare static variables?Objective C의 구현 컨텍스트 내부 및 외부에서 정적 변수를 선언하는 것과 다른 점은 무엇입니까?

내가 본

@implementation ClassA 

static NSString *str = nil; 

..... 

@end 

과 같은 코드뿐만 아니라

static NSString *str = nil; 

@implementation ClassA 

..... 

@end 

은 무엇 diffe의 정적 VAR는 외부

+0

Pls는 참조이 당신의 모든 콘텐츠 *를 추가하지 않을 경우 SO http://stackoverflow.com/questions/1662903/where-do-i-have-to-declare-static-variables – visakh7

+0

@ 7KV7 질문 너의 *, 코멘트가 선호된다. –

답변

16

대 @implmentation 컨텍스트 내에서 선언 된 경우

@implementation ClassA 

static NSString *str = nil; 

..... 

@end 

그리고 그들은 같은 방식으로 작동

static NSString *str = nil; 

@implementation ClassA 

..... 

@end 

...

사이에는 차이가 없습니다, 관세, 보험료

정적 변수는 클래스에 도움이됩니다. objec "공장"이 인스턴스를 생성하는 것보다 많은 기능을 제공합니다. 그것의 자신의 권리에 완전하고 다양한 개체가되는 접근 수 있습니다. 클래스 객체는 을 사용하여 인스턴스를 조정하고 이미 생성 된 객체 목록 인 의 인스턴스를 분배하거나 응용 프로그램을 관리하는 데 필수적인 다른 프로세스를 관리합니다. 이 특정 클래스의 개체 하나만 필요로하는 경우 모든 개체의 상태를 정적 변수에 넣고 클래스 메서드 만 사용할 수 있습니다. 이렇게하면 인스턴스를 할당하고 초기화하는 단계 인 을 절약 할 수 있습니다.

관련 문제