2014-10-07 2 views
0

일부 Apple 코드를 검토 중이며 수동으로 생성 된 속성 설정기에 평등 확인 기능이 있는지 확인합니다 (아래 참조). 내 자신의 코드에서 자주 사용합니다. _datasource = datasource; 평등 검사를 생략해도 문제가 있습니까? 이중 유지와 같은 ARC 관련 사항이 있습니까?iOS 자신의 속성 설정자를 작성할 때 객체 동등성을 검사해야합니까?

@property (nonatomic,strong)NSArray* datasource; 

-(void)setDatasource:(NSArray *)datasource 
{ 
//is there anything wrong if this test is missing? 
    if(_datasource != datasource) 
    { 
     _datasource = datasource; 
    } 
} 
+1

이것이 전체 설정 메서드 인 경우 전혀 작성하지 않아도됩니다. – rmaddy

+0

일반적으로이 메서드의 끝 부분에 테이블 뷰 새로 고침 또는 유사한 코드를 추가합니다. –

답변

1

당신의 접근 방식을 의심 할 여지없이 사용할 수 있습니다. ARC는 자동으로 귀하의 기본 ivar를 유지/해제합니다 (강하게 선언했습니다). 나는이 수표가 애플의 메모리 관리하에 있던 과거 버전에서 유래했다고 생각한다.

1

메모리 관리와 관련이 없습니다. 이것이 유일한 이유는 나중에 setter에 몇 가지 추가 기능을 추가하려고 할 수 있기 때문입니다 (이 기능은 사용자 정의 setter의 목적입니다).이 코드가 특정 객체에 대해 한 번만 호출되는 경우가 종종 있습니다.

0

프로그래머는 누군가 매우 동일한 개체를 값으로 할당하려고하는지 확인 중입니다. 그들이 코드를보다 능률적으로 사용한다고 가정하면 할당이 수행되지 않습니다.

관련 문제