Tôi đang tìm thêm một cử chỉ để quan điểm của tôi như sau:Swift 4 add cử chỉ: override vs @objc
override func viewDidLoad() {
super.viewDidLoad()
< blah blah blah >
// Add tap gesture
let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap))
myView.addGestureRecognizer(tap)
}
Tuy nhiên, trong Swift 4 trình biên dịch của tôi là đem lại cho tôi những lỗi sau:
Argument of '#selector' refers to instance method 'handleTap()' that is not exposed to Objective-C
Đề xuất là thêm @objc để hiển thị phương pháp thể hiện này cho Objective-C.
Tùy chọn khác để thực hiện điều này (thông qua mã chỉ) sẽ là ghi đè hàm touchesBegan()
và sử dụng chức năng đó để xử lý nhấn.
Tôi đang cố gắng thực hiện điều này theo cách 'Swift' mà không phải mang Obj-C. Có cách nào Swift thuần túy để thêm cử chỉ nhấn này mà không sử dụng @objc không? Hoặc đó là cách bình thường và dự định để thêm cử chỉ nhấn này?
Bản sao có thể có của [Làm cách nào tôi có thể xử lý việc phản đối suy luận @objc với #selector() trong Swift 4?] (Https://stackoverflow.com/questions/44390378/how-can-i-deal-with-objc -inference-deprecation-with-selector-in-swift-4) – LinusGeffarth