왜 필요 없음에 대한을 풀어 콘센트의 설정으로"지정"?
-
03-07-2019 - |
문제
나는 독서가 있다면 뭔가 다음과 같다:
@property (nonatomic, assign) UIView *anView;
그런 다음 필요가 없 케어에 대한 메모리를 관리합니다.나는 할 필요가 없[anView 릴리스]에서-dealloc 방법입니다.
왜?
"할당"는 컴파일러:"이봐 남자,이 숙박 시설을 유지하지 않는 어떤 사람이 할당하여 그것은".고 할 수 있습니다 다음
@synchronize anView;
와 컴파일러는 마술로 만듭니다 getter 및 세터,setter 수 있습니다 그냥 보면 다음과 같다:
- (UIView*) anView {
return anView;
}
Setter 처럼 보일 수 있습니다:
- (void) setAnView:(UIView*)newAnView {
anView = newAnView;
}
는 잘못된?는 경우에는 바로,세터 클레임이 없음의 소유권 newAnView 변수 이후,그것은"보"을 제공합니다.그것은 단지 그리고 해당 인스턴스 변수이다.그래서 고려할 때 소유권 정책,할 필요가 없을 위한 anView 인스턴스에서 변수-dealloc.객체지 않신은 그것을 소유하고 있습니다.Ist 는 정확합니까?
해결책
예,당신은 기본적으로 정확하다.가정하자는 쓰레기 수집가는 off(그렇지 않으면 그것이 문제가되지 않 어쨌든).
을 사용할 때 할당성이 없 개체를 해제하지 않기 때문에 당신은 유지한다(그것은 다른 사람의 책임).
기본적으로,이 만들어 약한 참조--anView 될 수 있 할당하는 동안 속도 포인트다.일반적으로,당신은 사용 할당을 위한 기본 데이터 유형에 대한 개체입니다.
제휴하지 않습니다 StackOverflow