如何在iOS 5中使用委托

3

我需要在iOS应用程序中使用一个委托对象。我已经将委托声明为:

在定义函数的类中:

@interface OOObjectCommandInterface : NSObject<OOCameraControllerDelegate>

在需要调用函数的类中: (在 .h 文件中)
@protocol OOCameraControllerDelegate

- (void)drawFrame:(CVImageBufferRef) imageBuffer:(BOOL)flip;

@end

并且

@interface OOCameraController : UIViewController
{
    ...    
    id<OOCameraControllerDelegate> delegate;
}

@property (nonatomic, readwrite) id<OOCameraControllerDelegate> delegate;

此外,在第二个类初始化的位置:
_hardwareController.delegate = [OOObjectCommandInterface ocInterface];

其中_hardwareControllerOOCameraController类的一个实例。 因此,当我尝试调用委托对象时,我会这样做:
[delegate drawFrame:imageBuffer:flip];

但是该函数未被执行。有什么想法吗?
附注:我调用的函数是单例类。那里可能有任何问题吗?
2个回答

4
你在第二个类中设置了委托给自己的吗?像这样在第二个类中创建一个对象:
@property (nonatomic, readwrite) id<OOCameraControllerDelegate> delegate;

然后执行[_hardwareController setDelegate:self];


3

根据定义,单例是一种设计模式,用于访问一个对象,该对象是唯一的,并且只能创建1次(首次执行get_instance)。通过get_instance,您可以从任何地方访问单例内部的函数,那么为什么不直接使用它呢?

编写类似于[[MySingletonClass get_instance] FunctionThatIWantToUse:...];的内容,并且不使用委托。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接