Вы находитесь получив вашу первую ошибку, потому что большая часть Cocoa Touch была проверена для поддержки генериков Objective-C, что означает, что теперь можно вводить элементы таких вещей, как массивы и наборы. В результате этого подпись этого метода изменилась, и поскольку то, что вы написали, больше не соответствует этому, вам предоставляется ошибка, объясняющая, что вы пометили метод как override
, но на самом деле он не соответствует никаким методам из суперкласса.
Затем, когда вы удаляете ключевое слово override
, ошибка, которую вы получаете, дает вам знать, что вы создали метод с конфликтующим селектором Objective-C с реальным методом прикосновений (в отличие от Swift, Objective-C не поддерживает перегрузку метода).
Суть в том, что в Swift 2 ваши прикосновения начали отменяться, должно выглядеть так.
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
// stuff
}
Для получения дополнительной информации о том, что Objective-C дженерики означает для вашего Swift код, я предлагаю вам взглянуть на раздел Легкие дженериков в предварительной версии Using Swift with Cocoa and Objective-C. На данный момент на страницах 33 & 34.