gpt4 book ai didi

ios - 从自定义委托(delegate)方法检索数据

转载 作者:行者123 更新时间:2023-11-29 03:47:10 24 4
gpt4 key购买 nike

这是我第一次尝试创建自定义委托(delegate)。我创建了一个小测试来检查基本功能。

基本上是shareRoutine我的委托(delegate)中的方法被调用,但返回值在NSLog上有效的是 NULL这意味着我的- (NSString*) shareRoutineDel未正确调用或检索。

有人能指出为什么这不起作用吗?

我已经包含了<shareDelegate>在这个UIViewController的.h文件中,但还没有做更多的事情,我的委托(delegate)方法是在另一个类中通过调用的。

- (IBAction)share:(UIButton *)sender {
_share = [[share alloc]init];
[_share shareRoutine];
}
- (NSString*) shareRoutineDel {
NSString* a= @"test";
return a;
}

我的委托(delegate)类

.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

最佳答案

如果你没有委托(delegate),你就不能向它请求任何东西,所以你将永远拥有 null。

尝试在创建测试实例后立即设置委托(delegate):

_share = [[share alloc]init];
_share.delegate = self;
[_share shareRoutine];

在你的问题中,你说“我的委托(delegate)方法是通过...在另一个类中调用的”,这可能意味着上面的内容不正确,但很难说。只需让它与 2 个类一起工作,直到您了解它是如何工作的。

关于ios - 从自定义委托(delegate)方法检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17611303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com