function – Swift,变量与方法名称相同
发布时间:2020-12-14 05:25:34 所属栏目:百科 来源:网络整理
导读:我有一个 : var formVC:UIViewController! 我也想尝试一个名为的函数: func formVC()-UIViewController{....} 我知道在OBJC中它有用,但我没有看到在Swift中这样做的方法.有没有办法解决这个问题,或者我不理解Swift中明显的架构/概念变化? 提前致谢. 这在O
我有一个 :
var formVC:UIViewController! 我也想尝试一个名为的函数: func formVC()->UIViewController{....} 我知道在OBJC中它有用,但我没有看到在Swift中这样做的方法.有没有办法解决这个问题,或者我不理解Swift中明显的架构/概念变化? 提前致谢.
这在ObjC中是一个坏主意,在Swift中它是非法的.考虑其中一些情况:
class X { var value : Int = 0 func value() -> Int { return 1 } } let x = X() 在这种情况下x.value是什么?是Int还是它() – >诠释?将类的方法视为闭包是合法且有用的. 如果我们更加棘手,并且这样做会怎样? class X { let value: () -> Int = { 2 } func value() -> Int { return 1 } } let x = X() let v = x.value() // ???? Swift应该使用属性值然后调用它吗?或者它应该调用方法值()?闭包是完全合法的属性. ObjC实际上存在相同的限制.您无法创建与方法冲突的合成属性(如果它们具有不同的类型;如果它们具有相同的时间,则ObjC将默默地不合成访问器).你正在考虑Swift属性,就像它们等同于ObjC的ivars,但那是不对的. Swift的属性等同于ObjC的属性(即访问ivars的方法).您无法访问Swift中的基础ivars. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |