新手提问,看别人的代码是这样写的:
@interface FirstViewController() -(void)timerOnActive; -(void)getDataFromCD; @end @implementation FirstViewController @synthesize userID; @synthesize timer;
上面的代码是写在.m文件里的,我的问题是为什么不把
@interface FirstViewController() -(void)timerOnActive; -(void)getDataFromCD; @end
写在.h文件的@interface中? FirstViewController() 后面的那个括号是空的,需要填什么吗?这样写是为了补充吗?
여기서 @interface FirstViewController()는 실제로 익명 카테고리와 마찬가지로 클래스 확장입니다. 이 클래스가 선언하는 메서드는 해당 클래스의 기본 @implementation 코드 블록에서 구현되어야 합니다. 또한 클래스 또는 프레임워크 클래스에서만 사용할 수 있도록 비공개로 선언된 추가 메서드도 있습니다. 위에서 언급한 개인용 헤더 파일이나 구현 파일의 카테고리(또는 둘 이상의 카테고리)를 사용하여 이러한 메소드를 선언할 수 있습니다. 이는 작동하지만 컴파일러는 선언된 모든 메서드가 구현되었는지 확인할 수 없습니다.
m 파일에 작성된 메소드는 외부 클래스에서 호출할 수 없습니다. 이 메소드는 프라이빗 메소드로 처리되어 이 클래스 내에서 호출됩니다. 외부 세계로부터 숨겨져 있습니다.