2010-01-05 4 views
0

뷰 클래스 메소드에서 정적 int 변수를 "정리"하는 방법은 무엇입니까? 이 시점으로 돌아올 때마다 나는 그 "0 점"을 필요로합니다. [self.view removeFromSuperview]; 명령은 그 vars에서 메모리를 확보하기에 충분하지 않습니다.static int 변수 해제

감사합니다. 멋진 2010 되세요!

이러한 int 변수는 뷰 메서드에서 정적으로 선언됩니다. 뷰 클래스에서는 전역 변수가 아닙니다.

답변

0
수동으로 유사한 setValue의 방법을 정의하여이 작업을 수행해야합니다

: 정적 값이 곁에하지 않으려면

@interface MyClass 
{ 
    // ... 
} 
+ (NSString *)myVar; 
+ (void)setMyVar:(NSString *)newVa; 
@end 

@implementation MyClass 
static NSString *myVar; 
+ (NSString *)myVar { return myVar; } 
+ (void)setMyVar:(NSString *)newVar { myVar = newVar; } 
@end 
2

, 그것은 정적하지 않습니다.

+1

그건 중요한 부분입니다. 내가 볼 때 정적 값을 계속 사용하고 싶습니다. 바로 그 견해에서 벗어난 직후. 내가 그들의 견해로 돌아 가면, 나는 그것들이 이미 "제로"되기를 바란다. 로컬 vars처럼. 이러한 int 변수는 뷰 메서드에서 정적으로 선언됩니다. 뷰 클래스에서는 전역 변수가 아닙니다. 감사. – BigJoke

+0

인스턴스 변수를 찾는 것처럼 들립니다. 실종 된 후에도 주위를 보게된다면,'-viewWillAppear :'또는'-viewDidDisappear'에서 인스턴스 변수를 0으로 만드는 것이 어떻겠습니까? – jbrennan

+0

AFAIK, 함수 (또는 메서드) 내부에 정의 된 정적 변수를 할당 할 때 실제로 나중에 해제 할 수 없습니다. – bentford