찾다

 >  Q&A  >  본문

新手提问:Objective-C中在@implementation上加一个@interface的有什么不同?

新手提问,看别人的代码是这样写的:

@interface FirstViewController() 
-(void)timerOnActive;
-(void)getDataFromCD;
@end

@implementation FirstViewController
@synthesize userID;
@synthesize timer;

上面的代码是写在.m文件里的,我的问题是为什么不把

@interface FirstViewController() 
-(void)timerOnActive;
-(void)getDataFromCD;
@end

写在.h文件的@interface中? FirstViewController() 后面的那个括号是空的,需要填什么吗?这样写是为了补充吗?

伊谢尔伦伊谢尔伦2768일 전606

모든 응답(2)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-21 11:18:01

    여기서 @interface FirstViewController()는 실제로 익명 카테고리와 마찬가지로 클래스 확장입니다. 이 클래스가 선언하는 메서드는 해당 클래스의 기본 @implementation 코드 블록에서 구현되어야 합니다. 또한 클래스 또는 프레임워크 클래스에서만 사용할 수 있도록 비공개로 선언된 추가 메서드도 있습니다. 위에서 언급한 개인용 헤더 파일이나 구현 파일의 카테고리(또는 둘 이상의 카테고리)를 사용하여 이러한 메소드를 선언할 수 있습니다. 이는 작동하지만 컴파일러는 선언된 모든 메서드가 구현되었는지 확인할 수 없습니다.

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-21 11:18:01

    m 파일에 작성된 메소드는 외부 클래스에서 호출할 수 없습니다. 이 메소드는 프라이빗 메소드로 처리되어 이 클래스 내에서 호출됩니다. 외부 세계로부터 숨겨져 있습니다.

    회신하다
    0
  • 취소회신하다