1
我有一個簡單的委託測試,但由於某種原因,它不會被調用。代表將無法工作
我想通過委託調用-(void)test
從AppDelegate
類。
/// AppDelegate.h
#import <Cocoa/Cocoa.h>
@protocol AppDelegateDelegate
@required
-(void)test;
@end
@interface AppDelegate : NSObject <NSApplicationDelegate> {
id<AppDelegateDelegate> _delegate;
}
@property(nonatomic, retain) id<AppDelegateDelegate> delegate;
@end
/// AppDelegate.m
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize delegate = _delegate;
-(void)awakeFromNib {
[_delegate test];
}
@end
/// test.h
#import <Foundation/Foundation.h>
#import "AppDelegate.h"
@interface test : NSObject <AppDelegateDelegate>
-(void)test;
@end
/// test.m
#import "test.h"
@implementation test
-(void)test {
//this should be called from AppDelegate
NSLog(@"delegate test");
}
@end
好的,我創建 - (IBAction爲)buttonCall:(ID)發送方{[委託試驗];所以現在有足夠的時間讓測試將它設置爲委派猜測。 我也在調用委託之前初始化它,並且我將屬性更改爲@property(assign)IBOutlet id委託; ,測試仍然不叫 –
user840250
2012-07-28 09:06:56
@ user840250'test'對象在哪裏設置自己作爲委託? – trojanfoe 2012-07-28 09:11:57
謝謝, test * testDelegate = [[test alloc] init]; [self setDelegate:testDelegate]; – user840250 2012-07-28 09:21:58