2012-09-28 2 views
0

내 헤더iOS에서 0이 아닌 초기 값을 설정하는 방법은 무엇입니까?

@interface MyClass : UIView{ 
    int thistone;} 
- (IBAction)toneButton:(UIButton *)sender; 
@property int thistone; 
@end 

에서 언급 된 바르를하고 난 구현에 합성 한 :

@implementation MyClass 
@synthesize thistone; 
- (IBAction)toneButton:(UIButton *)sender { 
if(thistone<4) 
    {thistone=1000;} // I hate this line. 
    else{thistone=thistone+1; } 
} 

내가 찾을 수없는 (또는 매뉴얼에서 찾을 수)를 설정하는 방법을 0이 아닌 초기 값 나는 그것을 1000에서 시작하고 버튼을 누를 때마다 1 씩 증가 시키길 원합니다. 이 코드는 내가 의도 한 바를 정확히 수행하지만 위의 if/else 문을 저장하는 더 적절한 방법이 있다고 생각합니다. 온라인 문서의 특정 줄에 대한 코드 수정 또는 포인터가 크게 감사드립니다.

+0

당신은 초기화 * 방법을 사용해야합니다. 이 답변을 참조하십시오 : http://stackoverflow.com/questions/4579342/where-to-initialize-custom-uiview-instantiated-in-inter-builder – abellina

답변

1

모든 개체에는 인스턴스화시 호출되는 init 메서드의 변형이 있습니다. 이러한 설정을 수행하려면이 메소드를 구현하십시오. 특히 UIView는 initWithFrame:initWithCoder입니다. 모두를 무시하고 별도의 메소드를 호출하여 필수 설정을 수행하는 것이 가장 좋습니다. 예를 들어

:

- (void)commonSetup 
{ 
    thisTone = 1000; 
} 


- (id)initWithFrame:(CGRect)frame 
{ 
    if (self = [super initWithFrame:frame]) 
    { 
     [self commonSetup]; 
    } 

    return self; 
} 


- (id)initWithCoder:(NSCoder *)coder 
{ 
    if (self = [super initWithCoder:coder]) 
    { 
     [self commonSetup]; 
    } 

    return self; 
} 
+0

와우. 내가 CGRect로 계속 놀고 있다는 걸 어떻게 알았지? 그것은 작동하고, 나는 더 많은 독서를해야한다고 생각합니다. 감사. 사실, if/else보다 많은 코드 타이핑이 필요하지만 Obj C 개념을 더 깊이 이해할 수 있습니다. 감사. – pterandon

관련 문제