2010-02-11 53 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

相關問題