0

카테고리를 만들려고하는 매우 큰 클래스가 있습니다. 원래 클래스의 .m 파일에는 "식별 할 수없는 식별자"빌드 오류가 발생하는 두 개의 객체 (범주 .h 파일에서 정의 됨)가 있습니다. 원래 클래스에서 카테고리에 정의 된 속성을 찾을 수 없습니다.

은 UploadViewController + CreateExportFiles.h 클래스 중 하나의 개체 정의입니다 :

@property (strong, nonatomic) NSArray *booksArray; 

원래 클래스 (UploadViewController.h)의 .H 파일은 다음과 같습니다 :

#import "UploadViewController.h" 
#import "UploadViewController+CreateExportFiles.h" 

내가 오류를 받고 있어요 클래스에서 booksArray의 사용법은 다음과 같습니다

if([[[booksArray objectAtIndex:i] tranCode] isEqualToString:@"A"]) 
,

오류를 해결하기 위해 다른 조치가 필요합니까?

+0

'objectAtIndex'가'id'를 리턴하고 파서가'tranCode'를 인식하지 못한다는 것이 문제의 일부입니까? –

+0

아니요. 이전에이 클래스를 분할하기 전에 (원본은 관리하기에 너무 커서) 모든 코드가 문제없이 작동했기 때문에. – SpokaneDude

답변

1

카테고리가 클래스에 스토리지를 추가 할 수 없습니다. 속성 선언을 기본 클래스 인터페이스에서 카테고리로 이동하면 컴파일러에서 [booksArray objectAtIndex:i]으로 참조하는 항목 인 ivar booksArray을 생성하지 않게됩니다.

기본 클래스 인터페이스 나 클래스 확장 또는 use a workaround에 속성을 다시 넣어야합니다.

+0

안녕하세요 조쉬 ... 문제를 해결했습니다. 이제는 클래스에 속한 클래스를 어떻게 호출할까요? 나는 원래 클래스를 인스턴스화하고 그 메소드를 호출 한 또 다른 클래스를 가지고있다. 물론 더 이상 발견되지 않습니다. 즉 UploadViewController * uvc = [[UploadViewController alloc] init]; [uvc createTabExportFile : @ "백업"]; – SpokaneDude

+0

속성을 포함하는 범주에 정의 된 메서드를 호출하려는 경우 범주 머리글을 가져와야합니다. –

+0

Ahhh Crap! 나는 그것을 알고 있었다. .. 단지 그것을 잊었다. .. 당신의 도움을 위해 다시 고맙다. 고맙습니다. 좋은 저녁 되세요. SD – SpokaneDude

관련 문제