Gần đây tôi đã bị buộc phải cập nhật lên Swift 3.0 và có vẻ như chuyển đổi của Xcode đã không làm một công việc tuyệt vời. May mắn thay, tôi có thể giải quyết phần lớn các vấn đề theo cách thủ công, tuy nhiên, tôi có một chút bối rối.Phương pháp này có ghi đè phương pháp này hay không?
Dòng này mà gạt các canBecomeFirstResponder
phương pháp trong uiController làm việc trước khi nâng cấp lên Swift 3.0:
override func canBecomeFirstResponder() -> Bool {
return true
}
Tuy nhiên, nó bây giờ trả về lỗi:
Method does not override any method from its superclass.
Tuy nhiên, loại bỏ các override
chút doesn dường như không sửa chữa nó, vì nó làm tăng một lỗi khác có vẻ mâu thuẫn với lỗi trước:
Method 'canBecomeFirstResponder()' with Objective-C selector 'canBecomeFirstResponder' conflicts with getter for 'canBecomeFirstResponder' from superclass 'UIResponder' with the same Objective-C selector
Có thực sự xảy ra ghi đè không? Tại sao Xcode cho tôi thông điệp hỗn hợp ở đây?
Để tham khảo, tôi đã xem this question và mặc dù nó rất giống nhau, nó là về một lớp, và đây là về một phương pháp. Để an toàn, tôi đã làm thử sử dụng giải pháp cho câu hỏi đó và nó tiếp tục phá vỡ mọi thứ và nêu ra các lỗi tương tự.
Xin lỗi vì đã đặt câu hỏi ngớ ngẩn, nhưng bạn có ý gì bằng cách "đánh dấu" câu hỏi đó? – Vemonus
Tôi muốn chọn/đánh dấu nó. – vadian
Hướng dẫn nhanh: sau khi chọn, bạn phải nhấn ⌘C hoặc chọn Chỉnh sửa> Sao chép để sao chép nó vào khay nhớ tạm của bạn nếu bạn muốn dán sau. –