3

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

在定义函数的类中:

@interface OOObjectCommandInterface : NSObject<OOCameraControllerDelegate>

在必须调用函数的类中:(在 de .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];

where_hardwareControllerOOCameraController类的一个实例。因此,当我尝试调用委托对象时,我会这样做:

[delegate drawFrame:imageBuffer:flip];

但该功能未执行。任何的想法?

PD:我调用的函数是一个单例类。那里可能有什么问题吗?

4

2 回答 2

4

您是否在第二堂课中将委托设置为自我?在第二个类中创建一个对象,例如

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

进而[_hardwareController setDelegate:self];

于 2012-07-16T11:07:29.190 回答
3

根据定义,单例是访问一个对象的设计赞助人,该对象是唯一的,只能创建一次(首先 get_instance 你这样做)。使用 get_instance,您可以从任何地方访问单例内部的函数,那么,为什么不直接使用它呢?

写类似 [[MySingletonClass get_instance] FunctionThatIWantToUse:...]; 并且不要使用委托

于 2012-07-16T11:15:29.353 回答