0
finishDecoding도 NSKeyedUnarchiver 인스턴스의 릴리스를 처리합니까? Class Reference에 표시되지 않습니다.NSKeyedUnarchiver를 사용하여 finishDecoding을 수행해야합니까?
finishDecoding도 NSKeyedUnarchiver 인스턴스의 릴리스를 처리합니까? Class Reference에 표시되지 않습니다.NSKeyedUnarchiver를 사용하여 finishDecoding을 수행해야합니까?
아니요, 직접 처리해야합니다.
Archives and Serializations Programming Guide에서 쉽게 확인할 수 있으며 예제를 보면 두 방법 (finishDecoding
및 release
)이 호출됩니다.
맞아, 고마워. 문제는 내가 풀어 낼 때 NSMutableArray의 내용이 손실된다는 것입니다. _connectedSystems = [unarchiver decodeObjectForKey : kSystemsDataKey]; [unarchiver finishDecoding]; EEMSystem * system = [_connectedSystems objectAtIndex : 0]; NSLog (@ "% @", system.name); 이것은 내게 이름을 알려줍니다. 그러나 [unarchiver release]를 추가하면; [unarchiver finishDecoding] 이후; 나는 일하지 않는다. –
@Man of One Way - 궁금한 점이 있긴하지만 이것은'release' 메소드의 간단한 호출과 관련 될 수 없습니다. 코드 스 니펫 (code snippet)을 제공하는 다른 질문을하여 그것이 무엇인지 알아내는 것이 좋습니다. –
문제는 - (id) initWithCoder : (NSCoder *) aDecoder를 실행하고 [aDecoder decodeObjectForKey : kEEMSystemNameKey];를 실행할 때 문제가 발생해야합니다. 내 끈에. 먼저 NSString을 할당해야합니다. 그렇지 않으면 내 시스템의 NSString * 이름이 아카이버에서 무언가를 가리키고 일단 해제되면 사라질 것입니다. –