[英]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.