2011-04-13 5 views
0

테이블에 값을 추가하거나 편집하려면 모달 뷰 컨트롤러를 사용합니다. 편집 할 때 모달 뷰 컨트롤러에서 NSIndexPath 속성을 설정하여 업데이트 할 항목을 알 수 있습니다. 그러나 새 항목을 추가 할 때 보낼 NSIndexPath 값이 없으므로 속성은 설정되지 않은 상태로 유지됩니다.내 NSIndexPath 속성이 설정되지 않은 상태로 유지 되니 괜찮습니까?

속성을 이와 같이 설정하지 않은 상태에서 문제가 있습니까? 그것은 내가 그것을 "무 (無)"로 설정하는 것을 허락하지 않는다.

답변

1

먼저, nil으로 설정할 수없는 이유는 무엇입니까? 그건 문제가 아니야.

둘째, 객체가 차지하는 메모리가 할당시 제로 아웃됩니다. 즉, 객체를 만들 때 모든 인스턴스 변수가 0, NULL, nil (모두 0뿐입니다)로 설정됩니다. 따라서 인스턴스 변수 (또는 ivar을 참조하는 속성)를 수정하지 않으면 0이됩니다.

+0

이상한 일입니다. 전에 viewController.editingIndexPath = nil;을 호출 할 때 오류 메시지가 나타납니다. (이것은 NSIndexPath가 'void'를 받아들이지 않는 것과 관련이 있습니다.) 오류 메시지가 무엇인지 확인하기 위해 주석 처리하지 않았습니다. Xcode 4가 재생 중이어야합니다. 도와 주셔서 감사합니다. –

+0

Aaaaah 나는 그것이 무엇인지 안다. 저는 속성을 설정할 때'*'를 넣는 것을 잊었습니다. 나는 질문을 쓰는 것 사이에 그것을 고쳤다는 것을 잊었다. –

1

괜찮습니다. 이 속성은 제 생각에는 초기화되지 않습니다. 따라서 모달 뷰 컨트롤러의 dealloc 메서드에서 nil 객체에 release을 호출하면 아무 작업도 수행되지 않습니다.

또는 안전하려면 모달 뷰 컨트롤러의 init 메소드에서 해당 속성을 nil으로 설정하십시오. 예 : self.myIndexPath = nil. 그게 효과가있다.

관련 문제