2012-04-02 3 views
0

이 주제에 대한 스택 오버플로에서 싱글 톤, 공용 및 전역 변수와 관련된 모든 예제를 검색하여 시도했습니다. 나는 실수를하고있다. textField의 일부인 strIP라는 설정 변수가 있는데 secondViewController.h에 선언되어 있습니다. myWSupdate.m이라는 클래스에서이 변수를 사용하기를 원합니다. 연결 문자열에 전달하려는 변수입니다. 이 올바르게 컴파일하지만 실행 중에 응용 프로그램이 충돌합니다. 내가 뭘 잘못하고 있니? 컴파일러에서싱글 톤, 공용 또는 전역 변수 사용

에러 : 때문에 캐치되지 않는 예외 'NSInvalidArgumentException'이유 응용 프로그램 종료 '+ [SecondViewController sharedIP] : 미정 선택기 클래스 0x6403c 전송'

@interface SecondViewController : UIViewController 
{ 
UITextField *ipAdd; 

NSString *strIP; 

} 
@property (nonatomic, retain) IBOutlet UITextField *ipAdd; 
@property (retain) NSString *strIP; 

+(SecondViewController*)sharedIP; 

다음

secondViewController.h I myWSupdate.m에 전화 : strIPSecondViewController에 속하는

#import "SecondViewController.h" 

/* Implementation of the service */ 

@implementation myWSupdate 

- (id) init 
{ 
    if(self = [super init]) 
    { 

     SecondViewController* IP = [[SecondViewController sharedIP]init]; 
NSLog(@"the test has %@", IP.strIP); 
    } 
} 


@end 
+1

무엇이 문제입니까? – Odys

+0

myWSupdate.m에서 "선언되지 않은 식별자 'strIP'사용 오류가 계속 나타납니다. 무엇이 누락 되었습니까? – iDev

+0

strIP는 SecondViewController의 멤버이므로 myWSupdate 메서드에서 strIP에 액세스하려고합니까? – Almo

답변

2

때문에, 당신은 참조 할 필요가 그 대상의 일부로 그것을 사용하십시오.

수행 방법은 SecondViewControllermyWSupdate 사이의 관계에 따라 다릅니다. (컨트롤러가 myWSupdate 객체를 생성 예를 들어, 당신은 초기화의 일부로 변수를 전달할 수 있습니다.)

예를 변수 때문에 필요가 있다는 사실을 변경하지 않습니다 공개를 표시 있다는 사실을 해당 클래스의 인스턴스과 관련하여 사용됩니다.