这是我第一次尝试创建自定义委托。我创建了一个小测试来检查基本功能。
基本上shareRoutine
我的委托中的方法被调用,但变量的返回值NSLog
因此NULL
暗示我- (NSString*) shareRoutineDel
没有被正确调用或检索。
谁能指出为什么这不起作用?
我已经包含<shareDelegate>
在 this 的 .h 文件中UIViewController
,但还没有做更多的事情,我的委托方法在另一个类中被调用。
- (IBAction)share:(UIButton *)sender {
_share = [[share alloc]init];
[_share shareRoutine];
}
- (NSString*) shareRoutineDel {
NSString* a= @"test";
return a;
}
我的代表班
.h
@class share;
@protocol shareDelegate
@optional
-(NSString*) shareRoutineDel;
@end
@interface share : NSObject
@property (nonatomic, weak) id<shareDelegate> delegate;
- (void) shareRoutine;
@end
.m
#import "share.h"
@implementation share
@synthesize delegate;
- (id) init {
if (self = [super init]) {
}
return self;
}
-(void) shareRoutine {
NSString * response = [[self delegate] shareRoutineDel];
NSLog(@"check: %@",response);
}
@end