gpt4 book ai didi

objective-c - 委托(delegate)问题

转载 作者:行者123 更新时间:2023-11-29 04:47:13 25 4
gpt4 key购买 nike

我不明白为什么我无法设置委托(delegate)。我正在使用 UINavigationController 在两个 View 之间切换。这是我的代码

SecondViewProtocol.h

#import <Foundation/Foundation.h>

@protocol SecondViewProtocol <NSObject>
@required
-(void)textFieldDidChange:(NSString *)data;
@end

SecondView.h

#import <UIKit/UIKit.h>
#import "SecondViewProtocol.h"
@interface SecondView : UIViewController

@property (nonatomic, retain) id<SecondViewProtocol>delegate;
@end

第二 View .m

@synthesize delegate = _delegate;
.......

-(IBAction)textFieldReturn:(id)sender
{
[[self delegate] textFieldDidChange:[self.textField text]];
}

.......

我已在 FirstView.h 中导入 SecondViewProtocol.h

FirstView.m

....
SecondView *secondView = [[SecondView alloc]init];
secondView.delegate = self;
....

这里我得到了Assigning to id from incompromed type FirtView。

这里出了什么问题?

最佳答案

首先,委托(delegate)属性应声明为assign,而不是retain。你永远不应该保留委托(delegate)。其次,FirstView 应符合 SecondViewProtocol,如下所示。

@interface FirstView: UIViewController <SecondViewProtocol>

关于objective-c - 委托(delegate)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9452257/

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