簡體   English   中英

在objective-c中如何使用“界面”

[英]How to use “interface” in the objective-c

我需要創建一個類,該類將具有與其他類相同的方法。 在Java或ActionScript中,我的類將實現一個接口,但是如何在Objective-C中實現呢?

我想創建自定義UIProgressView而不擴展此類,但具有相同的公共方法(接口)。

您可以使用協議

請參閱本Apple指南

接口在Objective-C中稱為protocol

@protocol SomeDelegate <NSObject>

- (void)someMethod;

@optional
- (void)someOptionalMethod:(NSString *)name;
@end

要使用該接口,只需將其添加到您的類中,例如: @interafce MyClass: NSObject<SomeDelegate>

如果不確定,請在運行時確定該方法是否存在,只應使用respondsToSelector:檢查:

 if([self.instanceOfMyClass respondsToSelector:@selector(someOptionalMethod:)]) {
    [self.instanceOfMyClass someOptionalMethod:@"my parameter"]
 }

您可以使用@protocol,它的作用類似於java接口:

@protocol MyProtocol
-(void)method1;
-(void)method2WithParameter:(NSString*)parameter;
@end

在要實現此方法的類中,需要遵循該協議:

@interface ViewController : UIViewController <MyProtocol>

並且您需要實施所需的方法。

暫無
暫無

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

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