2012-03-16 2 views
0

프로젝트를 만들었으므로 잘 작동합니다. 이제 몇 가지 테스트 사례를 작성해야합니다. 그래서 SenTestingKit을 추가하고 설정했습니다. 그런 다음 클래스의 인스턴스를 만들고 해당 클래스 내의 일부 변수의 값을 변경하여 테스트 사례를 작성하기 시작했습니다. 문제는 일부 변수를 로컬 (기본값은 "protected")로 선언했기 때문에 이러한 변수를 수정할 수 없다는 것입니다. 그래서 @property (nonatomic, retain)를 각 변수에 추가하지 않고 인스턴스 var 값을 변경하여 테스트하는 방법이 있습니까? 미리 감사드립니다.iPhone Unit SenTesting Framework를 사용한 테스트

답변

0

내 목표는 변수에 @property()를 추가하지 않고 인스턴스 변수를 수정하는 것이 었습니다.

-(void)setValueOfArrayCount:(int)newValue{ 

    arrayCount = newValue; 
} 

-(int)getValueOfArrayCount{ 

    return arrayCount; 
} 

과 같은 인스턴스 메서드를 추가하여이 작업을 수행했으며이 메서드를이 클래스 외부에서 호출 할 수있었습니다.

0

@ public을 사용하여 공개 할 수 있습니다. object-> member를 사용하여 멤버에 액세스 할 수 있습니다.

0

Objective-C는 고도로 내 향적이며 재귀적인 언어입니다. 변수를 공용으로 구성하지 않고도 모든 변수에 액세스하고 수정할 수 있습니다.

당신은 실제로 당신이 전용으로 뭔가를해야 세터가 (그러나 보호되어 있으면)

[myObject에 performSelector : @selector (setMyiVar : withObject : 값]

설정자가 없으면 항상 런타임 메서드를 사용하여 class_getInstanceVariable을 사용하여 ivar에 액세스하고 수정합니다. 확인해주세요. http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html

희망이 있습니다.

관련 문제