2014-11-15 24 views
0

這是來自遊戲教程的入門項目中的ViewController.m文件。這個語法與接口聲明有什麼關係?

@interface ViewController() 

//irrelevant stuff omitted 

@end 

這是ViewController()位讓我困惑。我瞭解公共和私人接口的不同之處,但直到Objective-C還沒有使用私有接口。我已經習慣了看到這樣的事情,而不是爲了公共接口:

@interface ViewController : UIViewController 

那麼,爲什麼現在它只是第一個,並用括號,沒有繼承符號?

回答

2

這是一個class extension。它允許聲明額外的接口,通常是私有的,因爲它在一個實現(.m)文件中。它與類別相似,只不過編譯器會要求您爲其中聲明的任何接口提供實現。 (即使沒有提供任何實現,類別也可以聲明一個接口。)