단위 뷰 컨트롤러를 설치하려고하는데, 뷰 초기화를 얻는 두 가지 방법을 시도했습니다. 첫 번째 방법은 번들을 사용하여 펜촉 콘텐츠를로드하고 찾고있는 필터를 제거하는 것입니다. 에 대한 다음과 같은 :nib 클래스가 다른 타겟에서 다른가요?
MyViewController *controller = nil;
....
NSArray* nibContents = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil];
NSEnumerator *nibEnumerator = [nibContents objectEnumerator];
NSObject* nibItem = nil;
while ((nibItem = [nibEnumerator nextObject]) != nil) {
if ([nibItem isKindOfClass:[MyViewController class]]) {
controller = (MyViewController*) nibItem;
break;
} else {
NSLog(@"nibItem class is %@", [nibItem class]);
NSLog(@"nibItem is %@", nibItem);
}
}
이 코드가 완료되면, 컨트롤러는 아직도 내가 펜촉 클래스 (이 % @ 장소 홀더)를 검사하는 일부 로그를 삽입했습니다, 전무, 그리고 그것과 동일 밝혀 MyViewController (적어도 두 클래스 설명 않았다), 그리고 이러한 코드는 디버그/릴리스 대상에서 매우 잘 작동하는지 확신하지만 단위 테스트를 실행하는 동안 작동하지 않습니다.
그렇다면 클래스 설명이 동일해도 클래스가 다르다는 뜻입니까?
내가 시도한 두 번째 방법은 initWithNibNamed : owner : options 메서드를 사용하는 것입니다. xib 파일 이름을 지정하기 만하면됩니다.하지만 nib가로드되지만보기 콘센트가 설정되지 않은 응답은 질문과 마찬가지로 상황을 설명합니다. 발견,하지만 난 상황이 설정이 제대로되어 있는지 다시 확인해야 :
인터페이스 Buildedr에서- ,
- 내 테스트 대상에 복사 구축 리소스 섹션의 목록에 XIB 파일을 추가합니다 사용자 정의 클래스 이름을 지정을
- tableview 콘센트를 인터페이스 파일에 연결하십시오 (뷰 콘센트를 클래스에 드래그 할 수는 없지만 그것은 자동으로 클래스의 tableView 가리 킵니다)
지금까지 테스트 통과보기를 얻을 수있는 유일한 방법은 수동으로보기 컨트롤러의보기 및 테이블보기를 설정하는 것입니다.
작동합니다! 감사합니다 Gaurav Rastogi! 왜 그런 일이 일어나는 지 알기 위해 내가 말할 수있는 것이 있습니까? –