Hi all,
I have swift code on play ground which can make Xcode 10.1
crash 100% (also crash on 10.2 beta). Code:
import UIKit
class ParentVC: UIViewController {
lazy var button: UIButton = {
let b = UIButton(frame: CGRect.zero)
b.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
return b
}()
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(button)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("ParentVC-viewWillAppear")
}
@objc func buttonAction() {
print("ParentVC-->buttonActionTap")
checkOTP()
}
func checkOTP() {
if randomNumber() % 2 == 0{
// trackEventAnalytic(111111)
trackEventNumber()
} else {
// trackEventAnalytic(33333)
trackOddNumber()
}
}
func trackOddNumber(){
trackEventAnalytic(33333)
}
func trackEventNumber() {
trackEventAnalytic(111111)
}
func randomNumber() -> Int {
return Int.random(in: 0 ... 10)
}
func trackEventAnalytic(_ eventId: Int) {
print("---->ParentVC-trackEventAnalytic:\(eventId)")
}
}
class ChildVC: ParentVC {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("ChildVC-viewWillAppear")
}
override func trackEventAnalytic(_ eventId: Int) {
//print result: ChildVC:trackEventAnalytic---->111111
//How to pass eventId with value 2222 instate of 111111
print("ChildVC:trackEventAnalytic---->\(eventId)")
// super.trackEventAnalytic(eventId)
}
override func trackOddNumber() {
trackEventAnalytic(2222222222222)
}
override func trackEventNumber() {
trackEventAnalytic(22)
}
}
//let c = ChildVC()
//c.button.sendActions(for: .touchUpInside)
let p = ParentVC()
p.button.sendActions(for: .touchUpInside)
let view = UIViewController()
view.view.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
view.view.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
p.present(view, animated: true, completion: nil)
The action which make Xcode crash: