我有一个像这样的自定义swift类
class NichedHelper: NSObject {
private var _theController:UIViewController? = nil
var theController:UIViewController? {
get {
return self._theController
}
set {
self._theController = newValue
}
}...
它有一个像这样的实现函数,_theController
传递一个继承UIViewController的Lobb类
func DoPump(from: String, theBoard: CGRect, overide: Bool) {
let abil:AnyObject = _theController!
abil.bottomConst.constant = -80
}
抛出错误'AnyObject' does not have a member named 'bottomConst'
。
我的第二个问题,如果我确定Lobb类(或其他类)有一个名为bottomConst的变量,我怎么可能从类NichedHelper访问它?
答案 0 :(得分:0)
你已经将_theController声明为私有,删除它只是声明为
var _theController:UIViewController!
//这就是我们如何在swift中滚动;)再见Objective-C
答案 1 :(得分:0)
我不确切地知道您要做什么以及为什么您有两个UIViewController
个实例。所以我无法回答你的第一个问题,但关于你的第二个问题,你必须将对象转换为UIViewController
对象:
func DoPump(from: String, theBoard: CGRect, overide: Bool) {
let abil:AnyObject = _theController as! UIViewController
abil.bottomConst.constant = -80
}
如果在bottomConst
中将UIViewControllers
属性声明为extension
的变量,则至少应该使编译错误消失(因为它们没有正常的变量)。
答案 2 :(得分:0)
好吧,我从通过UIViewController
改为NSLayoutConstraint