2012-03-24 7 views
0

이것은 내가 다른 클래스의 속성 (BIDDoubleComponentPickerViewController)를 참조하려고하는 내 클래스의 코드는 selectedValue 및 selectedSuit 변수에 액세스 할 때 그들은 값과 수트가 다른 클래스에서 null이 아니라는 사실을 알고있을 때 null이라고 주장합니다.수 없습니다

NSInteger valueRow = [doublePicker selectedRowInComponent: 
         kValueComponent]; 
NSInteger suitRow = [doublePicker selectedRowInComponent: 
         kSuitComponent]; 
value=[[NSString alloc]initWithString:[values objectAtIndex:valueRow]]; 
suit=[[NSString alloc]initWithString:[suits objectAtIndex:suitRow]]; 

을 여기에있는 코드를 속성의 선언 :

@property (strong, nonatomic) NSString *value; 
@property (strong, nonatomic) NSString *suit; 

누구나 어떤 아이디어가 여기 BIDDoubleComponentPickerViewController의 속성을 설정하는 코드는?

+0

물론 할 수 있습니다. 끝난. –

답변

2

새보기 컨트롤러를 만들 때 바로보기가로드되지 않습니다. 따라서 valuesuit을 초기화하는 코드가 init 메서드에있는 경우 doublePicker은 여전히 ​​nil입니다. 그 코드가 viewDidLoad 또는 loadView에있는 경우 당신이 [dummyObject value];[dummyObject suit];를 사용하여 액세스 valuesuit하려고 할 때 그렇지 않으면, 그것은 여전히 ​​실행되지


편집 : (OP의 코멘트 후)

내 대답은 여전히 ​​정확합니다. 줄에 있기 때문에 :

BIDDoubleComponentPickerViewController *dummyObject = [BIDDoubleComponentPickerViewController new]; 

새 개체를 만듭니다. dummyObject은 피커보기가 표시된보기 컨트롤러와 다릅니다. 따라서 찾고있는 값 valuesuit은 방금 초기화 한 것이 아닌 다른보기 컨트롤러의 속성입니다.

문제를 해결하려면 BIDDoubleComponentPickerViewController이라는 새 인스턴스를 만들지 말고 찾고있는 값을 보유하고있는 인스턴스를 검색해야합니다.

+0

코드는 실제로 버튼 동작 내에 있습니다. 다른 클래스의 코드는 별도의 버튼 동작 내에 있습니다. 디버깅하기 전에 버튼을 눌러야합니다. –

+0

당신의 아이디어는 확실히 의미가 있습니다. 특정 인스턴스를 가져 오는 방법에 대한 실마리를 줄 수 있습니까? –

+0

정보가 충분하지 않아서 그럴 수 없습니다. 다른 질문을 게시하고 서로 다른보기 컨트롤러를 만든 방법과 위치, 어떻게 전환했는지, 스토리 보드 사용 여부, 그리고 다른보기 컨트롤러에 어떻게 액세스 할 수 있는지 또는 어떻게 할 수 있는지 물어보십시오. 매개 변수를 하나에서 다른 매개 변수로 전달하십시오. – sch