![](/img/trans.png)
[英]How to call C++ method from Objective-C Cocoa Interface using 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
描述的方法。
協議不是由特定類實現的。 任何聲稱符合協議的類都必須實現其方法。 任何聲稱符合協議的對象都必須屬於實現其方法的類。
在您的情況下, obj
是ClassB
,因此ClassB
必須直接或通過繼承實現MyProtocol
描述的方法。
[obj load]
可以。 如果要關閉編譯器,可以將其id
為id
:
[(id)obj load];
但是,如果您知道需要調用-load
方法,則可能應該將-load
方法添加到協議中,或者制作另一個具有-load
方法的協議,例如
@protocol Loadable
-(void)load;
@end
...
id<MyProtocol, Loadable> obj;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.