草庐IT

Getter-Setter

全部标签

ios - 你如何使用 perform(#selector(setter :)) to set the value of a property using swift 4?

我正在尝试运行这段代码,但它产生了意想不到的结果。classTest:NSObject{@objcvarproperty:Int=0}vart=Test()t.perform(#selector(setter:Test.property),with:100)print(t.property)正在打印的值是一些垃圾号码-5764607523034233277。如何使用perform方法设置属性的值? 最佳答案 performSelector:withObject:方法需要一个对象参数,因此Swift将基本类型100转换为对象引用。se

swift - 警告 : Attempting to access 'myProperty' within its own getter vs SwiftFormat

我有这样的代码:@IBInspectablevarmyProperty:String?{set(newValue){//logicforsetter}get{returnmyProperty}}上面的代码产生了一个警告:Attemptingtoaccess'myProperty'withinitsowngetter.Access'self'explicitlytosilencethiswarning.所以我按照建议修改代码:@IBInspectablevarmyProperty:String?{set(newValue){//logicforsetter}get{returnself.

ios - 无法注入(inject)属性,找不到 setter 选择器

使用Typhoon和Swift,我正在设置我的项目,但我遇到了这个问题。我有一个TPLAddInteractor这样的类classTPLAddInteractor:NSObject,TPLAddInteractorInput{varoutput:TPLAddInteractorOutput?vardataManager:TPLDataManagerInterface?}我的程序集是这样的classTPLAddAssembly:TyphoonAssembly{varapplicationAssembly:TPLApplicationAssembly?dynamicfuncaddInter

caching - Swift getter 代码重复

我正在尝试在swift中使用变量,这些变量是关键的应用程序范围的用户设置,因此它们必须在每次更改后保存到磁盘。这些变量很少,我对应用程序启动后从磁盘进行的第一次读取感到满意。我有类似这样的代码:var_myEnumMember:MyEnum?varmyEnumMember:MyEnum{get{ifletvalue=_myEnumMember{//inmemoryreturnvalue}varc:Cache=Cache()varstoredValue:MyEnum?=c.get("SomeStorageKey");ifletvalue=storedValue{//existsondis

swift - "Use of unresolved identifier"对隐式 setter 上的选择器使用新的 Swift 2.2 语法

将我的代码迁移到Swift2.2,我有一个属性varactiveTextField:UITextfield?并且我使用的选择器是"setActiveTextField:"。此方法在我的swift代码中不明确存在。使用新语法,#selector(setActiveTextField)不起作用:Useofunresolvedidentifier我知道我可以使用Selector("setActiveTextField:")但我会失去新的快速选择器的好处。那么,这样做的新方法是什么? 最佳答案 这里的问题是您使用的是属性,而不是方法。这有两

ios - Swift:当我们对 Int 进行扩展时,属性 getter 中的 "self"应该是什么?

这似乎是一个错误并在Xcode7中用Swift(2b3)解决了为了方便观察,我们把代码贴到playground上,结果会在评论中指出。extensionInt{varsq:Int{mutatingget{self//5self=self*self//25returnself//25Here25ismade}}}varn:Int=5//5n.sq//25n//5Whyisn't25?我的问题是,如果属性sq的getter中的self指的是整数本身,为什么n在之后保留5>n.sq做了?让我们看看如果我们只添加一个setter会发生什么:extensionInt{varsq:Int{muta

ios - 使用 Objective-C 属性 getter 实现 Swift 协议(protocol)

我想为Swift中所有可突出显示的View创建一个共同的祖先。我希望已经存在的实现highlighted属性的UIKit类开箱即用,所以在阅读thisanswer之后并检查theObjective-CgetterisdefinedasisHighlighted我将协议(protocol)定义更改为:@objcprotocolHighlightable{varhighlighted:Bool{@objc(isHighlighted)getset}}所以UILabel和UIControl的协议(protocol)实现就这么简单:extensionUILabel:Highlightable{

objective-c - 在 Swift 中命名 Obj-C 属性 getter 和 setter

我正在寻找访问的通用解决方案:Obj-C来自Swift的命名属性getter和命名属性setter符合具有readonly属性的Objective-C@protocol类似于CreatinganObjective-CequivalentGetterandSetterinSwift,已关闭,但未提供令人满意的答案。Objective-C到Swift属性示例:我有一个Objective-C协议(protocol),它定义了两个有问题的属性,一个带有自定义getterisEnabled,另一个带有私有(private)setterexists。@protocolSomeProtocol@pr

xcode - 带有 Objective-C 选择器 'setChecked' 的方法 'setChecked:' 与具有相同 Objective-C 选择器的 'checked' 的 setter 冲突

我创建了继承自UIButton的自定义类。在那个类中我创建了一个定义为的函数:funcsetChecked(checked:Bool){self.checked=checkedifchecked{buttonImageView.image=UIImage(named:"radioSelected.png")}else{buttonImageView.image=UIImage(named:"radioUnselected.png")}}在我将我的xCode更新到6.1.3之前它工作正常。现在我不断在函数定义行收到错误消息:Method'setChecked'withObjective-

ios - Swift - 带有 Objective-C 选择器 '*()' 的方法 '*' 与具有相同 Objective-C 选择器的父类(super class) '*' 的 'NSObject' 的 getter 冲突

自从将我的xcode更新到6.3.1后,我收到了这条错误消息。/Users/MNurdin/Documents/iOS/xxxxx/Models/Message.swift:46:10:Method'hash()'withObjective-Cselector'hash'conflictswithgetterfor'hash'fromsuperclass'NSObject'withthesameObjective-Cselector我的代码varhash_:UIntfunchash()->UInt{returnUInt(hash_);} 最佳答案