swift 逻辑语句的问题

问题如图 不知有大神可以解决么。
下面注释的就很ok、
逻辑判断写一起就会有错误。本菜试过。不加abs() 方法可以运行。

其中

exchangeImage(imageView!, image2: (sender.view)!)
是交换点击的imagev 和 另一个imageView 交换。
感谢大家的解答。

            func imageClick(sender: UITapGestureRecognizer) {

                            let imageView = self.view.viewWithTag(18)

                            print("o==========")
                            print(abs(((imageView?.center.y)!) - (sender.view?.center.y)!) )

                            // (imageView?.center.x)! == (sender.view?.center.x)! && (abs((imageView?.center.y)! - sender.view?.center.y) == 105)
                            // ((imageView?.center.x)!) == sender.view?.center.x

                            if (abs(imageView?.frame.origin.y)! - (sender.view?.frame.origin.y)! == 105) && ((imageView?.frame.origin.x)! == (sender.view?.frame.origin.x)!) || (abs(imageView?.frame.origin.x)! - (sender.view?.frame.origin.x)! == 105) && ((imageView?.frame.origin.y)! == (sender.view?.frame.origin.y)!) {

                                    exchangeImage(imageView!, image2: (sender.view)!)
                            }

                            /*
                            if abs(((imageView?.center.y)!) - (sender.view?.center.y)!) == 105 && ((imageView?.center.x)!) == sender.view?.center.x {

                                    exchangeImage(imageView!, image2: (sender.view)!)
                            }

                            if abs(((imageView?.center.x)!) - (sender.view?.center.x)!) == 105 && ((imageView?.center.y)!) == sender.view?.center.y {

                                    exchangeImage(imageView!, image2: (sender.view)!)
                            }
            */

先看看错误的位置,是不是imageView变量!强制取值的时候出错了