2013-10-30 4 views
0

Graham Lee가 "시험 주도 iOS 개발"을 읽고 OCUnit을 배우고 있습니다. 나는 이것이 Xcode의 몇 가지 버전이라고 생각하지만 여전히 유용한 리소스이다. - (void)setUpOCUnit에서 속성을 사용하는 것이 안전합니까?

@interface BROAnswerTests : XCTestCase { 
    BROAnswer *answer; 
    BROAnswer *otherAnswer; 
} 
@end 

다음 인스턴스 : 책 테스트 객체에

이 같은 클래스 확장에 선언

- (void)setUp 
{ 
    [super setUp]; 
    answer = [[BROAnswer alloc] init]; 
    answer.text = @"The answer is 42"; 
    answer.person = [[BROPerson alloc] initWithName:@"Graham Lee" avatarLocation: 
        @"http://example.com/avatar.png"]; 
    answer.score = 42; 
} 

는이 클래스 확장에 @property을 사용하는 것이 안전 할 것인가 대신에?

답변

1

개인 선택의 문제입니다.

당신이 속성을 사용하고 항상 쉬울 수 있습니다 인스턴스와 지역 변수 사이의 구별, self.something 또는 [self something]로 참조하는 경우 ...

개인적으로 나는 (어떤 사람들에게 미움) "_"로 인스턴스 변수를 사용 접두사.

copy으로 속성을 선언 할 때 유일한 차이가있을 수 있습니다. 특정 경우 (테스트 클래스)에서는 일반적으로 속성 및/또는 종속 관계 (비웃거나 비웃음)로 개체를 잡기 위해 속성을 사용하므로 이러한 시나리오에서 복사본을 사용하는 것은 거의 불가능합니다.

당신/당신 팀에게 더 좋다고 생각하는 것을 사용하십시오.

관련 문제