1
내가 self->ivar = [[Foo alloc] init];
라고 말하면, ARC는 실제로 새로운 객체를 유지합니까? 또는 일반적으로 보존을 방지하기 위해이 유형의 할당이 사용됩니까?자동 참조 계산이 화살표에 미치는 영향 -> 참조 해제?
내가 self->ivar = [[Foo alloc] init];
라고 말하면, ARC는 실제로 새로운 객체를 유지합니까? 또는 일반적으로 보존을 방지하기 위해이 유형의 할당이 사용됩니까?자동 참조 계산이 화살표에 미치는 영향 -> 참조 해제?
실제로 ARC는 새 개체를 유지합니까?
이는 ivar
의 속성에 따라 다릅니다. ivar
이 강력한 소유권 자격 (대부분의 변수에 대한 기본값)을 갖고 있으면 객체가 유지됩니다.
변수가 어떻게 발견되는지는 중요하지 않습니다. 전역, 암시 적 인스턴스 (변수 이름 만), 명시 적 인스턴스 (예 : ->
, 샘플과 동일) 등이 있습니다. 변수에 대한 소유권 한정자가 무엇인지 만 중요합니다. ARC는 소유권 한정자가 나타내는대로 올바른 작업을 수행합니다.
HTH
"->"과 관련하여 "새로운 대상"은 무엇입니까? 과제의 RHS는 질문과 관련이 없습니다. LHS가 "참조 해제"가 아닌지 고려하십시오. – user2864740