1.
야생포인터
1> C 언어의 야생 포인터: 포인터 변수가 임의 공간을 가리키는데, 이 포인터가 바로 야생 포인터입니다. 포인터 변수를 선언할 때 이 포인터 변수에 값을 할당하지 않았으므로 이 포인터 변수의 값은 임의 가비지 값입니다.
2 & gtOC 의 야생 포인터: 포인터가 가리키는 개체가 해제되었습니다. 이 포인터를 야생 포인터 좀비 개체라고 합니다. 릴리즈된 개체를 좀비 개체 회수의 본질이라고 합니다. 개체가 차지하는 공간은 다른 프로그램에 할당하기 전에 다른 개체에 할당할 수 있습니다. 사실 이 개체는 아직 있고 데이터는 아직 있습니다. 하지만 이 공간은 언제든지 다른 프로그램에 할당할 수 있습니다.
3> 좀비 오브젝트:
3.1> 메모리의 해제 메커니즘: 오브젝트를 삭제해도 메모리 공간은 삭제되지 않지만 해당 오브젝트가 차지하는 공간은 다른 오브젝트에 할당할 수 있으며 데이터는 다른 오브젝트에 할당될 때까지 남아 있습니다.
3.2> 좀비 오브젝트가 해제된 오브젝트를 좀비 오브젝트라고 합니다.
3.3> 가 wild 포인터를 통해 액세스하는 개체는 좀비 개체이므로 오류가 발생하거나 오류가 없을 수 있습니다. 좀비 개체가 차지하는 공간이 다른 프로그램에 할당되지 않은 경우 오류 4 >; 따라서 포인터가 들포인터가 되면 이 들포인터를 통해 대상의 구성원을 방문하지 마라. 이때 미지수가 많기 때문이다.
4> 가 포인터를 통해 객체에 액세스할 때 Xcode 는 기본적으로 객체가 좀비인지 확인하지 않으며 Xcode 에 대한 좀비 객체 검사를 활성화할 수 있습니다. 이 경우 포인터를 통해 객체에 액세스할 때마다 해당 객체가 좀비 객체인지 확인합니다. 좀비 대상이라면 즉시 오류를 보고하세요. 좀비 개체의 실시간 감지를 활성화하는 방법-> 실행-> 편집 관리자-> 실행->
5> 좀비 개체를 열면 이렇게 많은 이점이 있는데, 왜 기본적으로 열지 않습니까? 좀비 개체가 열리면 이 포인터로 개체를 방문할 때마다 좀비 개체인지 확인합니다. 이렇게 하면 많은 성능을 소모할 수 있다.
객체 참조 수가 0 이 될 때 좀비 객체를 사용하여 포인터 변수에 nil 값을 할당하지 않도록 하려면 어떻게 해야 합니까?
너는 좀비를 부활시킬 수 없다.
[p 1 게시]; //
참조 카운터가 0 이므로 객체가 해제됩니다. P 1 은 좀비를 대상으로 하는 야생 포인터입니다.
[p 1 예약]; //
이 말로 좀비 대상을 부활시키는 것은 불가능하다. P 1 은 야생 포인터로 좀비 오브젝트에 액세스하면 오류가 발생합니다.