2012-07-27 69 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