Xcode 10 'frame' доступен только на iOS 12.0 или более поздней ошибке компиляции iOS 12 beta - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь скомпилировать свой проект в бета-версии Xcode 10.0 (10L176w) (10L176w) ... Я получаю сообщение об ошибке 'frame' доступен только на iOS 12.0 или новее

Вот мой код

@IBAction func btnAddToCartAction(_ sender: AnyObject) {
    let btnCart:UIButton = sender as! UIButton
    let boundsCenter:CGPoint = btnCart.bounds.offsetBy(dx: sender.frame.size.width/2, dy: btnCart.frame.size.height/2).origin;

}

Который отлично компилируется в Xcode 9

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Нажмите на ошибку (подсказку) и выберите решение (Fix) вашего запроса.(Он предложит вам возможное решение)

enter image description here

или

Замените AnyObject на UIButton в типе аргумента параметра функции.

@IBAction func btnAddToCartAction(_ sender: UIButton) {
    //let btnCart:UIButton = sender as! UIButton
    let boundsCenter:CGPoint = sender.bounds.offsetBy(dx: sender.frame.size.width/2, dy: sender.frame.size.height/2).origin;

}

Или

Использовать экземпляр btnCart вместо sender

@IBAction func btnAddToCartAction(_ sender: AnyObject) {
    let btnCart:UIButton = sender as! UIButton
    let boundsCenter:CGPoint = btnCart.bounds.offsetBy(dx: btnCart.frame.size.width/2, dy: btnCart.frame.size.height/2).origin;

} 
0 голосов
/ 06 июня 2018

В основном в Xcode 9 AnyObject.frame компилировался успешно, но в XCode10 он останавливает компиляцию, что имеет смысл ...

Вам нужно преобразовать его в UIButton или UIView перед доступом к свойству кадра...

Таким образом, окончательный код будет

@IBAction func didTapOnCheckMarkButton(_ sender: AnyObject) {

        let btnCart:UIButton = sender as! UIButton
        let boundsCenter:CGPoint = btnCart.bounds.offsetBy(dx: btnCart.frame.size.width/2, dy: btnCart.frame.size.height/2).origin;
         ...

}
...