簡體   English   中英

如何通過Objective-C中的接口創建的對象調用方法

[英]How to call a method through the object created by interface in Objective-C

我需要通過接口創建的對象調用方法,即

id<MyProtocol>obj;

現在我在主類中創建了這個obj,我沒有實現該協議的方法,但是我需要訪問已經在其他類中實現的方法。我現在按以下方式調用該方法

[obj load]; 

在我的主類的applicationDidFinishLaunching中,但是我無法訪問該方法? 請確實建議我通過協議調用方法的正確方法...

協議什么都不實現。 它僅描述對象應響應的一組消息。 您的obj對象屬於某個類。 此類需要實現MyProtocol描述的方法。

編輯

協議不是由特定類實現的。 任何聲稱符合協議的類都必須實現其方法。 任何聲稱符合協議的對象都必須屬於實現其方法的類。

在您的情況下, objClassB ,因此ClassB必須直接或通過繼承實現MyProtocol描述的方法。

[obj load]可以。 如果要關閉編譯器,可以將其idid

[(id)obj load];

但是,如果您知道需要調用-load方法,則可能應該將-load方法添加到協議中,或者制作另一個具有-load方法的協議,例如

@protocol Loadable
-(void)load;
@end

...
id<MyProtocol, Loadable> obj;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM