草庐IT

getter-setter

全部标签

ios - Swift setter 和 getter 问题

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion我知道已经有一些关于此的问题。而且我知道swift只能为计算属性自定义属性setter和getter。但我认为这是Swift最糟糕的部分。因为:所有变量都暴露在外。不再有私有(private)或公共(public)属性(property)。无法像objective-c_variable那样访问属性的“内部”变量我的代码是这样的:varvalue:Float=0.0{willSet{setValue

ios - Swift 正确使用 getter 和 setter

有人可以帮助我理解如何正确使用swift中的getter和setter。我的印象是它与Java不同。这是在Swift中存储和访问类变量的正确用法吗?classPerson{privatevarname:Stringinit(name:String){self.name=name}funcsetName(name:String){self.name=name}funcgetName()->String{returnname}} 最佳答案 Swift为getters和setters提供了比Java更结构化的方法。您可以,但您不应该像在代

Swift 属性 - getter ivar

我们应该在Swiftgetter中使用ivar属性吗?我的代码导致getter调用getter直到程序崩溃:vardocument:UIDocument?{get{returnself.document}set{self.document=newValueuseDocument()}} 最佳答案 Swift属性不像在Objective-C中那样具有独立的底层存储的概念。相反,您需要创建第二个(私有(private))属性并将其用作存储:privatevar_document:UIDocument?vardocument:UIDocu

Swift 4.2 Setter Getter,所有通过该函数的路径都会调用自身

在swift4.2中,我开始看到很多问题,其中一个我不确定如何解决,因为我的getter方法应该返回值本身。我想发生的事情是getter会在调用self.type时尝试访问getter我该如何解决这个问题?这是错误代码的屏幕截图。提前致谢代码如下@objcvartype:DecisionType{set{if(newValue==DecisionType.DecisionDouble){//YesbuttonandNObuttonshouldbeshowingokButton.isHidden=true;yesButton.isHidden=false;noButton.isHidde

objective-c - 在 Swift 中创建等效的 Objective-C Getter 和 Setter

以下Swift中的Objective-C代码等效于什么?@property(nonatomic,assign,getter=isOpen)BOOLopen;具体来说,如何在Swift中声明一个变量来合成具有自定义名称的getter?此外,您随后如何覆盖getter和setter的实现? 最佳答案 您的假设很接近,但有几处可以更改。我会尽力帮助您尽可能接近Objective-C版本。首先,nonatomic和assign在swift中是不相关的。这给我们留下了@property(getter=isOpen)BOOLopen;由于swi

properties - 为具有定义的 getter 和 setter 的属性设置默认值

我有一个非常简单的类classSimpleClass{varsimpleDescription:String{get{returnself.simpleDescription}set{self.simpleDescription=newValue}}}为simpleDescription变量定义默认值的正确方法是什么? 最佳答案 在Swift中,getter和setter用于计算属性-属性没有存储空间,因此,在您的情况下,不能在中设置simpleDescription一个二传手。如果您需要默认值,请使用:classSimpleCla

ios - Swift 中的 Objective C Setter 覆盖

我需要在我的自定义UIButton子类中覆盖UIViews高亮属性的setter;objective-c@property(nonatomic,getter=isHighlighted)BOOLhighlighted;像这样覆盖-(void)setHighlighted:(BOOL)highlighted{[supersetHighlighted:highlighted];if(highlighted){self.backgroundColor=UIColorFromRGB(0x387038);}else{self.backgroundColor=UIColorFromRGB(0x5b

swift - 属性观察者 willSet 和 didSet;属性 getter 和 setter

willSet-didSet和get-set之间有什么区别?属性(property)?在我看来,它们都可以为一个属性设置一个值。何时以及为何应使用willSet-didSet,以及何时使用get-set?我知道对于willSet和didSet,结构如下所示:varvariable1:Int=0{didSet{println(variable1)}willSet(newValue){..}}varvariable2:Int{get{returnvariable2}set(newValue){}} 最佳答案 Whenandwhyshou

c# - 最小起订量:在没有 setter 的情况下设置属性?

我有以下类(class):publicclassPairOfDice{privateDiced1,d2;publicintValue{get{returnd1.Value+d2.Value;}}}现在我想在我的测试中使用一个返回值1的PairOfDice,尽管我在我的真实骰子中使用随机值:[Test]publicvoidDoOneStep(){varmock=newMock();mock.Setup(x=>x.Value).Return(2);PairOfDiced=mock.Object;Assert.AreEqual(1,d.Value);}不幸的是,我收到了一个Invalidse

c# - bool 属性 Getter 和 Setter 锁定

为什么要在这样的bool属性的getter和setter周围创建锁?private_lockObject=newobject();privatebool_myFlag;publicboolMyFlag{get{lock(_lockObject){return_myFlag;}}set{lock(_lockObject){_myFlag=value;}}} 最佳答案 好吧,您不一定需要锁-但如果您希望一个线程明确读取另一个线程写入的值,您要么需要锁,要么需要一个volatile变量。我个人已经放弃尝试理解volatile的确切含义。我