从另一个班级

时间:2015-07-28 04:56:51

标签: ios swift class

我有一个像这样的自定义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访问它?

3 个答案:

答案 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