我是iOS开发的新手,我正在尝试理解一些概念的界面。提供的SDK(已编译,我无法对其执行任何操作)具有以下定义:
@class HRMonitor;
@protocol HRMonitorDelegate
- (void) hrmon: (HRMonitor*) mon heartRateUpdate: (double) hr;
// And others
@end
@interface HRMonitor : NSObject <NSStreamDelegate>{
}
-(id) init: (id) _delegate;
-(void)startup;
有谁知道如何使用协议heartRateUpdate
中定义的HRMonitorDelegate
方法?根据我在iOS Developer Library中的内容,我必须有一个符合委托的接口,如HRMonitor : NSObject <HRMonitorDelegate>
来调用协议中的方法。但是API中没有提供。
或者我可以使用init
方法吗?但那我应该如何通过_delegate
?
答案 0 :(得分:1)
使您的界面符合代表
init HRMonitor,将您的界面实例作为_delegate
然后 - (void)hrmon:(HRMonitor *)mon heartRateUpdate:(double)hr接口将被调用
使接口符合委托,并在需要时调用它的方法,记得检查委托是不是nil并响应你要调用的方法
@interface YourClass : NSObject <HRMonitorDelegate>
@implementation HRMonitor
-(void)someMethod
{
HRMonitor monitor = [HRMonitor alloc] init:self];
}
- (void) hrmon: (HRMonitor*) mon heartRateUpdate: (double)
{
}