2011-02-25 3 views
2

IOS 시뮬레이터에서 segfault 11 메모리 액세스 오류가 발생했으나 아래 코드에서 해당 릴리스를 주석 처리하면 사라집니다. 내가 참조 횟수가 증가되지는 NSXMLParser 구현에 의해 반환 NS 문자열의 인스턴스를 수신하고 나는 그것을 공개하지 않아야하기 때문에이 값을 공개해야합니까?

// get get the question number 
NSString *text = [attributeDict valueForKey:XML_TAG_QUESTION_ATTRIBUTE_NUMBER]; 
question.number = [text intValue]; 
//[text release]; <==== no more segfault 11 when this is commented out. 

내 질문은,?

답변

13

다음 규칙이 있습니다. 항상 메모리 관리에 NARC가 있습니다.

전화 할 경우 :
(N) EW
(A) lloc
(R) ETAIN 또는
이 (C) opy ...

당신은 해제해야합니다. 그렇지 않다면, 당신은 편리한 방법을 통해 그것을 얻었고 자동 갱신이 이루어집니다.

다른 개체의 컨테이너 인 경우 컨테이너에는 개체가 보관되어 있으므로 컨테이너를 놓을 때까지 걱정할 필요가 없습니다.

+0

좋은 방법을 기억하고, 그 방법은 그것을 들어 본 적이 없어요! :) – Josh

관련 문제