カスタムデリゲートを作成しようとするのは初めてです。基本的な機能をチェックする小さなテストを作成しました。
基本的shareRoutine
に、デリゲートのメソッドが呼び出されますが、変数の戻り値は、NSLog
myが適切に呼び出されていないか、取得されていない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