草庐IT

getter-setter

全部标签

ios - 当计算实例变量而不是存储实例变量时,行为会有所不同

我有一个从xib文件启动的自定义UIView类。它具有名为title的实例属性,类型为String?。每当设置title属性时,UITextField的文本都会更改为title属性的值。如果title属性是存储属性,则程序按预期工作。如果title属性是一个计算属性,那么程序会因EXC_BAD_ACCESS错误而崩溃,我认为这是因为IBOutlet还没有已初始化。谁能解释为什么如果title是一个存储属性,它可以工作,但如果它是一个计算属性,它就会失败?以下是源码——NibView是UIView的子类,负责xib文件的加载classNibView:UIView{overrideinit

ios - 使用 getters/setters 的正确方法是什么

称呼,这是我上一篇文章(Incorrectdatapassedonfirstclickofbutton)的跟进。它得到了回答,但更新的编辑当然发生了。我的查询如下,目前我有两个IBActions函数,它们是空的,缺少任何类型的代码,它们存在的唯一目的是它们连接到我的另一个ViewController,因此如果我删除它们我无法区分应该使用哪个segue(我的理解是,虽然我们可以在两个ViewController之间创建segue,但我认为只有一个是有意义的(例如,如何决定使用哪个).我离题了。我之前尝试在我的代码中使用以下内容:self.performSegue(withIdentifi

ios - 如何使用 Swift 为从 Storyboard生成的 UIScrollView 创建一个 setter?

使用界面构建器,我将一个UIScrollView拖到我的ImageViewController上。我从ScrollView控制拖动到我的ImageViewController上以获得一个IBOutlet来控制scrollView。其中添加了代码:@IBOutletvarscrollView:UIScrollView现在我想在scrollView初始化后立即设置一个属性。在objective-c中,您可以编写此函数来实现它:-(void)setScrollView:(UIScrollView*)scrollView{_scrollView=scrollViewself.scrollVie

ios - Setter 在 Swift 中不起作用

我正在尝试使用设置大小和原点的快捷方式扩展UIView,如Obj-C中所做的那样here.getter工作很好,但setter不行。任何想法为什么?我做错了什么?这是我从Obj-C重写为Swift的代码:extensionUIView{...varheight:CGFloat{get{returnself.frame.size.height}set{varr=self.frame;r.size.height=height;self.frame=r;}}这是另一个,因为CGRect属性是“val”varwidth:CGFloat{set{self.frame.size.width=wid

Swift - 预期 '{' 开始 setter 定义

我正在关注advancedswiftWWDC2014视频,在类上使用下标向下委托(delegate)给类属性,但使用与视频中相同的语法时出现错误enumDirection{caseNorth,South,East,West}classPlace:Thing{init(_location:Thing?,_name:String,_longDescription:String){self.exits=Dictionary()super.init(location,name,longDescription)}varexits:Dictionary}extensionPlace{subscri

swift - 如何为枚举关联值实现快速下标 setter

试图让以下工作:enumFoobar{casevalues([Int])casesingleThing(Double)subscript(index:Int)->Int?{get{switchself{case.values(letnumbers):returnnumbers[index]default:returnnil}}set{switchself{case.values(letnumbers):numbers[index]=newValue!default:break}}}}以上代码无法编译。当我用let分配给它时,它提示我正在更新numbers。所以我尝试用var替换let。

swift - 如何在 Swift 中将 NSUserDefaults 与属性 getter 和 setter 一起使用?

我试图直接从其setter和getter属性在内存中保存和检索变量,但getter导致无限循环并且应用程序崩溃并显示错误消息:error:Executionwasinterrupted,reason:EXC_BAD_ACCESS(code=2,address=0x10049b9a0).Theprocesshasbeenreturnedtothestatebeforeexpressionevaluation.可能是什么原因以及如何正确执行此操作?classTask{letmemory=NSUderDefaults.standardUserDefaults()vartaskList:[St

swift - Getter 计算属性与返回值的变量

getter计算属性和返回值的变量之间有区别吗?例如。下面两个变量有区别吗?varNUMBER_OF_ELEMENTS1:Int{returnsampleArray.count}varNUMBER_OF_ELEMENTS2:Int{get{returnsampleArray.count}} 最佳答案 具有getter和setter的计算机属性具有以下形式:varcomputedProperty:Int{get{returnsomething//Implementationcanbesomethingmorecomplicatedth

ios - 为我的变量编写自定义 Setter - Swift

我正在尝试在属性发生变化时对其运行Setter,这也会影响该类中的逻辑:这是它在Objective-C中的样子:@property(strong,nonatomic)NSFetchedResultsController*fetchedResultsController;为fetchedResultsController设置方法:-(void)setFetchedResultsController:(NSFetchedResultsController*)newFetchResultsContrller{NSFetchedResultsController*oldfetchResults

swift - 我如何创建一个带有返回可选的getter但返回非可选的setter的下标

我正在编写一个名为TriangularArray的自定义集合.它代表这样的结构:xxxxxxxxxxxxxxx其中每个x是数组中的一个元素。我可以访问具有行号和索引号的元素,它们都是从零开始的。例如,访问以下(4,2):abcdefghijklmno将导致m(第5行,该行中的第三个值)。我用了[[T]]作为支持数组,我写了一个这样的下标:subscript(_row:Int,_index:Int)->T?{get{//innerArrayisthe[[T]]usedforbackingifrow=innerArray.count{returnnil}ifindexrow{returnn