iOS - 사용자 정의 클래스 객체를 속성으로 올바르게 참조하는 방법

1530 단어
어떤 동료가 인코딩을 했습니다.하나의 클래스는 하위 클래스의 대상을 속성으로 인용한다.
#import 
#import "CycleFindTestClas.h"

@interface TestObjectClass : NSObject
@property (nonatomic, strong) CycleFindTestClas *cycle;
@end
#import "TestObjectClass.h"

//    CycleFindTestClas           

//(Cannot find interface declaration for 'TestObjectClass', superclass of 'CycleFindTestClas')

@interface CycleFindTestClas : TestObjectClass

@end

다음은 본인의 추측입니다. 실수가 있으면 많은 지도 부탁드립니다.
그 원인을 따지자면 사실 매우 간단하다.컴파일러가 어떤 종류를 찾는 것은 단지 두 종류일 뿐이다.
  • 파일에서 #import "ClassName.h"
  • 찾기
  • 사전 설명을 통해 @class name;

  • 상기 코드에 선행 설명이 없으면 TestObjectClass 클래스를 찾으려면 반드시 파일을 통과해야 하기 때문에 아래의 절차를 시작합니다
  • 컴파일러가TestObjectClass를 찾았습니다.h 파일
  • 그리고 TestObjectClass를 위에서 아래로 옮겨다니기 시작합니다.h 코드
  • Foundation 발견.h내에 없습니다. 다음 줄을 찾습니다. CycleFindTestClas.h
  • CycleFindTestClas 검색h에TestObjectClass가 있지만 이TestObjectClass는 부류입니다. 계속해서 TestObjectClass의 성명을 찾기 시작합니다
  • 컴파일러가TestObjectClass를 찾았습니다.h 파일
  • 그리고 TestObjectClass를 위에서 아래로 옮겨다니기 시작합니다.h 코드
  • ····················순환된 거 아니에요
  • 그래서 TestObjectClass의 성명을 찾을 수 없습니다 @interface TestObjectClass: NSObject.그래서 우리는 일상적인 인코딩에서h내에 가능한 한 다른 사용자 정의 클래스를 인용하지 않습니다.h 파일, 가능한 한 어떤 종류를 미리 설명하는 것을 사용합니다.
    @class CycleFindTestClas;
    #import 
    @interface TestObjectClass : NSObject
    @property (nonatomic, strong) CycleFindTestClas *cycle;
    @end 
    

    좋은 웹페이지 즐겨찾기