2012-07-27 18 views
2

我已經創建了一個協議(LEService),我將遵循多個UIViewControllers。直到運行時我纔會知道選擇了哪個UIViewController服務。創建符合協議的對象實例

反正是有不說的對象是什麼,直到運行時創建符合協議的對象的實例?

回答

3

當然,你可以像這樣做:

id <LEService> objectName = [self returnObjectConformingToLEServiceProtocol]; 

id是Objective C中的泛型類型。

+2

@Denis只是爲了澄清,你是不是** **創建一個** **例如,你只是告訴該變量'objectName',它可以是任何對象,將指向一個對象,符合編譯器到'LEService'協議。當然,如果你返回的對象實際上沒有實現'LEService'並且你調用了那個協議中定義的方法之一,那麼這當然可能都是謊言並且導致你的程序在運行時崩潰。 – 2012-07-27 13:18:42

+0

+1的謊言 – 2012-07-27 13:23:29