gpt4 book ai didi

iOS:从委托(delegate)中获取实例变量值(属性)

转载 作者:行者123 更新时间:2023-11-28 23:05:50 24 4
gpt4 key购买 nike

我正在开发一个具有多个 View 的简单应用。我有一个基础 View 和第二个 View ,以基础命名。基础 View 充当第二个 View 的委托(delegate)。

我想在我的第二个 View 中设置和检索 baseView(“名称”)中的属性值。因为在 secondView 中,委托(delegate)是一个 secondViewDelegate 对象,所以它没有“名称”方法。

baseView.h(跳过导入):

@interface baseView : UIViewController <secondViewDelegate> {
}
@property (retain) NSString *name;

@end

secondView.h(跳过导入):

@protocol secondViewDelegate;

@interface secondView : UIViewController{
}
@property (nonatomic,assign) id <secondViewDelegate> delegate;

@end

@protocol secondViewDelegate
- (void) secondViewDidFinish:(secondView *)controller;
@end

这里通常的做法是什么?我真的需要为协议(protocol)实现 getter 和 setter 吗?喜欢:

@protocol secondViewDelegate 
- (void) secondViewDidFinish:(secondView *)controller;
- (NSString *)getName;
- (void)setName:(NSString *)newName;
@end

或者有什么好的方法可以实际访问 baseView 属性,或者至少获取实例? (这是个好主意吗?)

我对 iOS 开发还是很陌生,可能不是很明显。

最佳答案

既然您在定义委托(delegate)协议(protocol)时遇到了麻烦(IMO 是一件好事),您应该坚持您的设计决策并将属性添加到协议(protocol)中,而不是寻找一个“聪明”的解决方案来消除警告.您可以使用 @property 作为协议(protocol)声明,如下所示:

@protocol secondViewDelegate
@property(retain) NSString* name;
@end

如果在您的协议(protocol)中拥有该属性感觉不好,那么您可能应该回顾您的设计决策:secondViewDelegate 应该做什么,或者为什么 secondView 需要设置属性。

关于iOS:从委托(delegate)中获取实例变量值(属性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9317996/

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