2010-02-11 76 views
-1

如何将接口的对象分配给协议的对象? 我有一个protocolA和protocolB。这两个协议的所有方法都在MyClass中实现。如何将访问权限限制为只有protocolA的methid和protocolB的方法?编码是在Objective-C for iPhone应用程序中完成的。如何在Objective-C中将一个类的对象分配给其他类?

回答

2

在创建对象,你可以只是这样做:

id <protocolA> protocolAObject = [[MyClass alloc] init]; 

现在,除非您使用显式类型转换,不能使用protocolB方法。

您也可以施放MyClass类的对象要么protocolA或protocolB这样的:

MyClass *myClassObject = [[MyClass alloc] init]; 
id <protocolB> protocolBObject = (id <protocolB>) myClassObject; 
+0

哎...一个写MyClass中的代码,并将其分配给OBJ protocolB的。但使用协议B的对象[protocolBobject],我可以访问其他协议的方法也:(但这不应该是这样的权利? – suse 2010-02-11 09:35:48

+1

没有办法完全阻止方法,但如果你试图调用protocolA方法,在protocolB的对象上,你应该得到编译器警告 – 2010-02-11 09:42:44

+0

好的...但我能够访问:(...给我一些很好的链接来阅读它的语法,或者链接到例子程序 – suse 2010-02-11 10:02:12

相关问题