Aaron Hillegass의 Mac OSX 용 Cocoa Programming 8 장에서이 프로그램을 실행할 때 오류가 발생합니다. 이 프로그램은 tableview를 어레이 컨트롤러에 바인드합니다. 어레이 컨트롤러의 setEmployees 방법,왜 이러한 메모리 문을 추가해야합니까?
-(void)setEmployees:(NSMutableArray *)a
{
if(a==employees)
return;
[a retain];//must add
[employees release]; //must add
employees=a;
}
책에서
, 두에서 유지하고 나는 새로운 직원을 추가하려고 할 때마다 포함되지 않은 문장 내 프로그램이 충돌을 놓습니다. 인터넷 검색 후 프로그램 충돌을 막기 위해 필자는이 두 가지 필수 선언문을 발견했습니다. 여기서 메모리 관리를 이해할 수 없습니다. a
을 employees
에게 할당하고 있습니다. 내가 할당을 해제하지 않으면 왜 a
을 유지해야합니까? 왜 마지막 할당 문에서 사용하기 전에 employees
을 출시 할 수 있습니까?
당신 말이 맞습니다. 4.1을 사용 중이며 ARC가 없습니다. 감사. – Standstill