gpt4 book ai didi

objective-c - @property,setter 和 getter 问题?

转载 作者:行者123 更新时间:2023-12-03 16:53:21 25 4
gpt4 key购买 nike

NSString *statusValue;
NSString *currentValue;

@property(retain, nonatomic) NSString *statusValue;
@property(retain, nonatomic) NSString *currentValue;

@synthesize statusValue;
@sythnesize currentValue;

鉴于上述情况,如果我将一个变量设置为另一个变量,我应该这样做......

[self setStatusValue: currentValue];

或者我应该再次使用该属性并使用...

[self setStatusValue: [self currentValue]];

我想后者(尽管可能有点过分)确实告诉读者我们正在使用对象实例变量之一,而不是某些局部变量。

只是很好奇,我本来打算选择底部的,但只是想在有人查看我的代码之前以及“到底是什么”时进行检查:)

加里

最佳答案

两者都工作得很好。您使用哪一种可能取决于您希望产生的副作用。例如,通过使用 [self currentValue],您可以触发 willAccessValueForKey:didAccessValueForKey: KVO 通知,但前提是有人实际观察到该通知属性,并且仅当它是 NSManagedObject 子类时。通常没有任何重大副作用。

就我个人而言,我可能会使用后一个示例,这样我就不必担心如果我决定更改 iVar 的 30 个位置的名称(当然,可以使用 Refactor->Rename 工具)在这种情况下将是使用权,但仍然)。

关于objective-c - @property,setter 和 getter 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2495106/

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