如何在iOS 5中使用代理

如何在iOS 5中使用代理

问题描述:

我需要在iOS应用程序中使用委托对象。我已经宣布委托作为本:如何在iOS 5中使用代理

在培训班里的函数定义:

@interface OOObjectCommandInterface : NSObject<OOCameraControllerDelegate> 

在所在班级的功能必须invoqued: (在德.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类的一个实例。 所以,当我尝试invoque委托对象,我这样做:

[delegate drawFrame:imageBuffer:flip]; 

,但不会执行该功能。任何想法?

P.D .:我打电话的函数是一个单例类。那里可能有问题吗?

根据定义,单是设计靠山访问对象,唯一的,即只可创建1次(第一get_instance你做)。使用get_instance,您可以从任何地方访问单身人士内部的功能,因此,您为什么不直接使用它?

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

+0

您是对的...¬¬ – goe 2012-07-16 11:21:56

你是否在第二课中将代表设置为self?创建在第二类中的对象像

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

然后[_hardwareController setDelegate:self];