코코아의 메모리 관리 개념을 이해하려고합니다. 나는 다음과 같은 부분 :::에 붙어코코아의 메모리 관리
//This is wrong code. But i want to understand why it is wrong!
- (void) setEngine: (Engine *) newEngine
{
[engine release];
engine = [newEngine retain];
}
때 newEngine 및 엔진입니다 같은, 그럼 어떻게 코코아는 인스턴스 변수로 취급 할 수있는 하나 매개 변수로 한 결정합니까? 예를 들어
:
Engine *engine = [Engine new]; // count: 1
Car *car1 = [Car new];
Car *car2 = [Car new];
[car1 setEngine: engine]; // count: 2 -----How is the retain count 2 here?
[engine release]; // count 1
[car2 setEngine: [car1 engine]];
난 내 프로그램의 효율성을 유지하도록 철저하게이 개념을 배우고 싶은대로 도와주세요. 나는 많은 사람들이 내게로 붙어 있고 내 친구들은 .. 미리 감사드립니다 ... :)
당신은 코드를 포맷 "{}"아이콘을 사용할 수 있습니다
여기에 전체 예입니다. 또한 프레임 워크 이름은 COCOA가 아니라 "Cocoa"입니다 (약어가 아닙니다). –
좋아요. 명심할 것입니다. –