     }
 
     fileprivate class Node {
-        var view: UIView?
+        var view: UIView!
 
         var dependents: NSMapTable = NSMapTable<Node, DependencyGraph>()
 

        let id = rules[relation.getValue()].VIEW.getViewId()

        if id.viewId != 0 {
            var node: Node = mDGraph.mKeyNodes.object(forKey: id)!
            if node == nil {
                return nil
            }

            var view: UIView = node.view!

            while view.isHidden {
                let l_rules: [BindViewWithRule] = (view.getLayoutParams() as! RelativeLayoutParams).getRules()
                node = mDGraph.mKeyNodes.object(forKey: l_rules[relation.getValue()].VIEW.getViewId())!
                if node == nil {
                    return nil
                }
                view = node.view!
            }

            return view

        }

        static func acquire(view: UIView) -> Node {
            var node: Node? = mPool.acquire()
            if node == nil {
                node = Node(view: view)
            } else {
                node!.view = view
            }
            return node!
        }
