2013-04-05 2 views
0

방금 ​​XCode에서 프로그래밍을 시작 했으므로 도움이 필요합니다. 두 개의 공백이 있습니다. 첫 번째 void에서 NSString을 만들고 두 번째 void에서 해당 문자열의 값이 필요하지만 그 값을 얻는 방법을 모르겠습니다. 다른 변수에서 변수 값 가져 오기

내 .H 파일의 shortend 버전입니다

//.h file 
-(void)viewDidLoad 
{ 
    [self ActionOne]; 
} 

-(IBAction)ButtonClick (id):sender 
{ 
    [self ActionTwo]; 
} 

    -(void)ActionOne 
    { 
     NSString *VarString = @"hello"; 
    } 

    -(void)ActionTwo 
    { 
     NSLog (@"%@", VarString); 
    } 

내 문제는 NSLog의 출력은 누군가가 당신은 지역 변수을 선언 한 나에게

+1

이들은 "방법"이 아닌 "보이드"입니다. 'void'는 메소드의 리턴 타입입니다. 반환 유형으로 메서드를 호출하면 사람들을 혼동하게됩니다. :) –

답변

2

을 도울 수 있기를 바랍니다, '널 (null)'이라는 것이다 ActionOne. 메소드가 실행되는 동안 만 지속됩니다. 영구 저장소의 경우 ivar이 필요합니다. 이는 Objective-C에서 "인스턴스 변수"를 의미하는 용어로 클래스의 인스턴스 인 각 개체에 대한 별도의 복사본이있는 변수입니다. 이것을 수행하는 가장 쉬운 방법은 ivar을 생성하는 속성과 읽기 및 쓰기를 위해 액세스하는 메소드를 선언하는 것입니다. 당신의하는 .m 파일에

@interface MyViewController: UIViewController 

@property (nonatomic, strong) NSString *varString; 

// ... method declarations, etc 

@end 

그리고 : 당신의 .H 파일에서

-(void)actionOne 
{ 
    self.varString = @"hello"; 
} 

-(void)actionTwo 
{ 
    NSLog(@"%@", self.varString); 
} 
+0

고마워, 나는 이미 내가 속성을 선언 할 필요가 있다는 것을 알고 있었다. 하지만 내가 대체해야한다는 것을 몰랐다. 'NSString * VarString = @ "hello";' 'self.varString = @ "hello";' 감사! – Berendschot

관련 문제