2012-07-16 58 views
3

我需要在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 .:我打電話的函數是一個單例類。那裏可能有問題嗎?

回答

3

根據定義,單是設計靠山訪問對象,唯一的,即只可創建1次(第一get_instance你做)。使用get_instance,您可以從任何地方訪問單身人士內部的功能,因此,您爲什麼不直接使用它?

寫下類似於[[MySingletonClass get_instance] FunctionThatIWantToUse:...];並且不要使用委託

+0

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

4

你是否在第二課中將代表設置爲self?創建在第二類中的對象像

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

然後[_hardwareController setDelegate:self];