Zaczynam uczyć się Swift i śledzę bardzo dobre wykłady wideo z Uniwersytetu Stanforda na YouTube. Oto link, jeśli jesteś zainteresowany lub pomaga (choć nie jest to konieczne do zrozumienia mojego problemu):
Tworzenie aplikacji dla systemu iOS 8 za pomocą Swift - 2. Więcej Xcode i Swift, MVC
Podczas wykładów dotarłem do punktu, w którym (o ile mogłem powiedzieć) mój kod był identyczny z kodem w filmie, ale w moim systemie wystąpił błąd kompilatora. Po wielu próbach i błędach udało mi się zredukować kod do dwóch przykładów, z których jeden generuje błąd, drugi lub który nie, ale nie mam pojęcia, co tak naprawdę powoduje błąd ani jak go rozwiązać.
Kod, który powoduje błąd to:
import UIKit
class BugViewController: UIViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
Powoduje to następujący błąd kompilatora:
Metoda „perform” z selektorem celu C „perform:” koliduje z poprzednią deklaracją z tym samym selektorem celu C
Po prostu usuwając podklasę UIViewController kod kompiluje:
import UIKit
class BugViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
Niektóre inne informacje, które mogą, ale nie muszą być istotne:
- Niedawno uaktualniłem do Yosemite.
- Kiedy zainstalowałem Xcode, skończyłem z wersją Beta (wersja 6.3 (6D543q)), ponieważ (jeśli dobrze pamiętam) była to wersja, którą musiałem uruchomić na mojej wersji OS X.
Mam nadzieję, że jest to błąd w kompilatorze, ponieważ w przeciwnym razie nie ma to dla mnie żadnego sensu. Każda pomoc otrzymana z wdzięcznością!