Swift:这里不允许使用没有getter / setter方法的'var'声明 [英] Swift: 'var' declaration without getter/setter method not allowed here

查看:110
本文介绍了Swift:这里不允许使用没有getter / setter方法的'var'声明的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在类的扩展名上声明 IBOutlet 属性。但它会给出错误


'var'声明,此处不允许使用getter / setter方法




  class ExampleView:UIView 
{

}

扩展名ExampleView
{
@IBOutlet var btn1,btn2:UIButton //这里我收到了错误。

}

请有人建议我这样做吗?

解决方案

来自扩展程序 - > 计算属性 in Swift编程语言


注意



扩展可以添加新的计算属性,但是它们不能添加存储的
属性,或者将属性观察者添加到现有属性。







添加以回应twlkyao的评论:这是我对 absoluteValue 属性的实现一个 Double

  extension Double {
var absoluteValue: Double {
if self> = 0 {
return self
} else {
return -self
}
}
}

//简单测试 - >应该调用println()。
var a = -10.0
if(a< 0){
println(小于零)
}
if(a.absoluteValue> 5 ){
println(Absolute is> 5)
}


I've tried to declare IBOutlet property on extension of class. But it give error as

'var' declaration without getter/setter method not allowed here

class ExampleView : UIView
{

}

extension ExampleView
{
    @IBOutlet var btn1, btn2 : UIButton // here I got error.

}

Please any one suggest me correct way to do it?

解决方案

From Extensions -> Computed Properties in The Swift Programming Language

NOTE

Extensions can add new computed properties, but they cannot add stored properties, or add property observers to existing properties.


Addition in response to twlkyao's comment: Here is my implementation of the absoluteValue property of a Double

extension Double {
    var absoluteValue: Double {
        if self >= 0 {
            return self
        } else {
            return -self
        }
    }
}

// Simple test -> BOTH println() should get called.
var a = -10.0
if (a < 0) {
    println("Smaller than Zero")
}
if (a.absoluteValue > 5) {
    println("Absolute is > 5")
}

这篇关于Swift:这里不允许使用没有getter / setter方法的'var'声明的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆