新手提问:Objective-C中在@implementation上加一个@interface的有什么不同?
伊谢尔伦
伊谢尔伦 2017-04-21 11:16:01
0
2
609

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

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

@implementation FirstViewController
@synthesize userID;
@synthesize timer;

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

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

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

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(2)
Peter_Zhu

這裡的@interface FirstViewController() 實際上是一個class extension,就像一個匿名的categories,它所聲明的方法必須要在相應類別的主要@implementation程式碼區塊被實現,一個類別可能有一個公開聲明的API ,同時有額外的方法聲明為僅由類別或框架類別私有使用。你可以在上面提到的一個私有的頭檔或實作檔案裡用一個category(或多於一個的category)來宣告這樣的方法。這樣是可行的,但是編譯器並不能確認所有被宣告的方法都被實作了。

小葫芦

寫在m檔案中的方法外部的類別沒法調用,這個被當成了一個私有的方法在本類別內調用。對外是隱藏的。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板