2016-03-07 16 views
0

如何定義協議斯威夫特:(Swift:如何返回Class <UITableViewDataSource>?

@protocol Protocol <NSObject> 

- (Class<UITableViewDataSource>)generateObject; 

@end 

編輯:如果我想在OC定義一個函數是這樣的:

- (UIViewController<UITableViewDataSource>)generateObject; 

雨燕風格類似下面的,對不對?

func generateObject() -> UITableViewDataSource 

我覺得這種方式忽略了一些類型檢查...有沒有更好的方式迅速做到這一點?

回答

0
func generateObject() -> UITableViewDataSource 
0

應該比較像這樣的迅速,

protocol Protocol: NSObjectProtocol { 
    func generateObject() -> UITableViewDataSource 
} 
+0

返回值是一個不是類的實例嗎? – Bannings

+0

這就是返回類型的含義。您無法通過任何方式返回協議或實例化協議。這隻意味着你將返回一個符合UITableViewDataSource協議的類。 – Sandeep

0

試試這個:

protocol Protocol: NSObjectProtocol { 
    func generateObject() -> UITableViewDataSource.Type 
} 
0

你在一個非常相似的方式定義協議類,結構和枚舉:

protocol Protocol: NSObjectProtocol 
{ 
    func generateObject() -> UITableViewDataSource 
} 

欲瞭解更多請參閱官方Apple Doc