2010-01-12 8 views
0

인터넷에서 얻을 수있는 변경 가능한 데이터로 NSXMLParser를 초기화합니다. 파서가 그 할당을 해제 할 때 파싱하는지 아니면 파싱 후에 파싱해야하는지 궁금하다.데이터에 대한 NSXMLParser 소유권

감사합니다.

답변

2

코코아는 메모리 관리에 "내 문제가 아닙니다"라는 은유를 사용합니다.

다른 객체에 무언가를 전달하면 객체를 유지해야합니다.

개체 중 하나에 무언가가 전달되면 개체를 유지해야하거나 사라질 수 있습니다.

일반적으로 같은 객체를 전달합니다

[otherObject doSomethingWith:[myThing autorelease]]; 

또는

[otherObject doSomethingWith:myThing]; 
    [myThing release]; 

코코아 프레임 워크는이 원칙에서 작동하며 클래스 같은 방식으로 설계해야합니다.

1

보유하고 더 이상 사용하지 않으면 해제하십시오. NSXMLParser는 데이터 자체를 유지하고 작업을 마칠 때 데이터를 릴리스합니다.

+0

답변 주셔서 감사합니다. 구문 분석 후 해지해야하나요? 내가 전에 그것을 풀어 주면 알려지지 않은 선택기에 충돌이 발생하고 파서가 그것을 유지하지 못하는 것 같습니다. –

+0

보존했다면, 작업을 마친 후에 해제해야합니다. 그러나 NSXMLParser에 전달한 후에는이를 의미합니다. –