Tôi có một dự án Swift nơi tôi muốn đính kèm một phương thức vào sự kiện nhấn của UIButton. Tôi có đoạn mã sau:Swift muốn đối số của #selector để được tiếp xúc với Objective-C
class MyClass {
let myButton = UIButton(frame: CGRectMake(50, 50, 100, 50))
init() {
myButton.addTarget(self, #selector(self.didTap(_:)), forControlEvents: .TouchUpInside)
}
func didTap(sender: UIButton) {
print("Tapped")
}
}
XCode nhấn mạnh dòng addTarget
tôi và nói:
Argument of '#selector' refers to a method that is not exposed to Objective-C
Nếu tôi thêm tiền tố @objc
-func didTap
của tôi như nó gợi ý sau đó tất cả mọi thứ hoạt động tốt.
Tôi có điều gì đó được bật trong cài đặt bản dựng của mình gây ra hành vi lạ này không?
PS. Tôi nhận được hành vi này trong 7.3.1. Nhưng nếu tôi thử điều này trong 7.2.1, nó không chấp nhận cú pháp #selector(method(_:))
, và Selector("method:")
hoạt động tốt.
câu trả lời ngắn gọn và toàn diện. Chính xác đến điểm. – MadNik