Я начинаю изучать Свифт и слежу за очень хорошими лекциями в Стэнфордском университете на YouTube. Вот ссылка, если вы заинтересованы или она помогает (хотя это не требуется для понимания моей проблемы):
Разработка приложений iOS 8 с Swift - 2. Больше Xcode и Swift, MVC
Когда я читал лекции, я дошел до точки, где (насколько я мог судить) мой код был идентичен коду в видео, но в моей системе я получил ошибку компилятора. После большого количества проб и ошибок я смог сократить свой код до двух примеров, один из которых генерирует ошибку, другой или нет, но я не знаю, что на самом деле вызывает ошибку или как ее разрешить.
Код, создающий ошибку:
import UIKit
class BugViewController: UIViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
Это создает следующую ошибку компилятора:
Метод "выполнить" с помощью Objective-C selector "выполнить:" конфликтует с предыдущим объявлением с тем же селектором Objective-C
Просто удалив подкласс UIViewController, компиляция кода:
import UIKit
class BugViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
Некоторая другая информация, которая может быть или не быть релевантной:
- Недавно я обновился до Йосемити.
- Когда я установил Xcode, я закончил с бета-версией (версия 6.3 (6D543q)), потому что (если я правильно помню) это была версия, которую мне нужно было запустить в моей версии OS X.
Я наполовину надеюсь, что это ошибка в компиляторе, потому что в противном случае это не имеет никакого смысла для меня. Любая помощь очень благодарна!