여기서 명백한 것이 누락되었지만 내 개체 중 하나에서 NSCopying을 구현 중입니다. 이 객체에는 getter를 통해 노출되지 않는 private 인스턴스 변수가 있습니다. 객체 외부에서 사용하면 안되기 때문입니다.NSCopying을 사용하여 개인 인스턴스 바를 복사하는 모범 사례
제 구현에서 copyWithZone:
을 할당하려면 새 인스턴스를 할당/초기화해야하지만 현재 인스턴스와 일치하도록 상태를 설정해야합니다. 내부의 copyWithZone:
에서 분명히 현재 개인 상태에 액세스 할 수 있지만 그 상태에 대한 접근자가 없으므로 새 객체로 설정할 수는 없습니다.
데이터 프라이버시를 그대로 유지하면서 표준적인 방법이 있습니까?
감사합니다.
NSCopyObject의 위험뿐만 아니라 사적인 접근자를 언급 해 주셔서 감사합니다. –
readonly 접근자가 메모리 관리에 어떻게 도움이되는지 잘 모르겠습니다. 'assign' 또는'retain'과 함께 사용하지 않는다면, getter 나 변수를 직접 사용하든 상관 없습니다. – Hemant
@Hemant, 호출자는 속성이 현재 (또는 앞으로) 읽기 전용인지 아닌지에 대해 신중할 필요가 없기 때문에. 그것은 호출자의 비즈니스가 아니며 시간이 지남에 따라 변경 될 수 있습니다. 그러면 잘못 수행 한 코드를 모두 찾아야합니다. 간단한 규칙을 고수함으로써 오류가 분명해진다. 당신이 "오, 내가 그것이 현재 괜찮다는 것을 알게 될 때를 제외하고"라고 말할 때, 당신은 유지 보수의 골치 거리에 스스로를 열어 놓고 있습니다. –