2013-10-09 1 views
0

보기 컨트롤러의 텍스트 필드에 입력 한 정보를 저장해야하는 Save 메서드가 있습니다. 메서드는이 정보를 Class 변수에 올바르게 저장하지만 배열에 개체를 저장하려고합니다. 이 작업을 수행하려고하면 오류가 발생합니다.Object를 사용하여 NSArray를 초기화 할 때 오류가 발생합니까?

선언되지 않은 식별자 'homeworkAssignment'를 사용합니다. 너는 '_homeworkAssignment'을 의미 했습니까? 여기

는이 방법 저장입니다

- (IBAction)Save:(UIButton *)sender { 
self.homeworkAssignment = [[Homework alloc] init]; 
self.homeworkAssignment.className = self.ClassNameField.text; 
self.homeworkAssignment.assignmentTitle = self.AssignmentTitleField.text; 
self.homeworkAssignment.assignmentDiscription = self.DiscriptionTextView.text; 
self.homeworkAssignment.pickerDate = self.DatePicker.date; 

NSArray *MyHomeworkArray = [[NSArray alloc]initWithObjects:homeworkAssignment, nil]; 
                  //Error here^
} 
내가 배열의 객체를 저장하는 동안 오류를 homeworkAssignment 개체 변수를 설정하지만, 얻을 수 있어요 왜

사람이 말해 줄래?

+2

'자기'가 무슨 뜻인지 아십니까? 작동하는 라인과 작동하지 않는 라인에서'homeworkAssignment'를 어떻게 사용하는지에 대한 차이점을 알 수 있습니까? – Wain

답변

2

self.homeworkAssignment을 사용해야합니다. 이미 정의한 속성이며 해당 메서드의 다른 모든 행에 사용했습니다.

2

homeworkAssignment에 대한 이전 참조는 homeworkAssignment 속성을 통해 발생했습니다. 예 : 귀하의 재산이 자동 합성으로

self.homeworkAssignment[self homeworkAssignment] self.homeworkAssignment = something 같다가 [self setHomeworkAssignment:something]

같다, 그것은 밑줄을 가지고있다 보조하는 바르, 예를 들어, 대부분의 시간 _homeworkAssignment

, 당신은 ivar에 접근하기 위해이 속성을 사용하고자하는데, 사용은 self.homeworkAssignment 또는 [self homeworkAssignment]입니다. 눈에 띄는 예외는 init 메소드와 dealloc 메소드에서 메소드 호출의 부작용을 피하고자하는 경우입니다.

관련 문제