gpt4 book ai didi

ios - 检测父类变量或属性被 objective-c 中的其他子类更改

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

我有父 UIViewController A,它有一些属性。我有继承自 A 的子 UIViewController B、C、D。

我的问题是:在 B 中,我更改了 Parent 属性值。 C、D 怎么知道 Parent 值从 B 改变了?

基本上我想在 child 之间共享属性。

提前致谢。

代码示例;

@interface A : UIViewController{
NSString *string1; //This is just example
}
@property (nonatomic, strong) NSString *string2;
@end

child 乙

@interface B : A
@end

@implementation B
//here I change string1 and string2;
@end

child C

@interface C : A
@end

@implementation C
//here I want to get changed string1 and string2 by Child A;
@end

child D

@interface D : A
@end

@implementation D
//here I want to get changed string1 and string2 by Child A;
@end

目前,我正在使用 Singleton 来存储所有值并且它运行良好,但我认为在这种情况下应该有更好的方法

最佳答案

我猜你能做的最简单的事情就是拥有继承的属性,但覆盖父 View 中的 getter 和 setter,以便它读取/写入静态变量。

@interface A : UIViewController
@property (nonatomic, strong) NSString *sharedString;
@end

@implementation A

static NSString* _sSharedString;

- (NSString*) sharedString {
return _sSharedString;
}

- (void) setSharedString: (NSString*) aString {
_sSharedString = aString;
}

@end

您可能希望同步属性。

从代码中思考,这将改变所有 child 的值(value)。我知道这就是您所需要的(仅值共享),但是如果您还需要在值更改时收到通知,您可以添加一些方法来在值更改时通知子项(实例)。

关于ios - 检测父类变量或属性被 objective-c 中的其他子类更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15228748/

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