我需要在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];
其中_hardwareController
是OOCameraController
类的实例。
所以,当我尝试调用委托对象时,我这样做:
[delegate drawFrame:imageBuffer:flip];
但该功能未执行。有什么想法吗?
P.D。:我调用的函数是一个单例类。可能有任何问题吗?
答案 0 :(得分:4)
你是否在第二堂课中设置了委托给自己?在第二个类中创建一个对象,如
@property (nonatomic, readwrite) id<OOCameraControllerDelegate> delegate;
然后[_hardwareController setDelegate:self];
答案 1 :(得分:3)
根据定义,单身人士是访问一个唯一的对象的设计顾客,只能创建一次(首先是get_instance)。使用get_instance,您可以从任何地方访问单例内的函数,因此,为什么您不直接使用它?
写一些像[[MySingletonClass get_instance] FunctionThatIWantToUse:...];并且不要使用代理