Mam problem z Xcode, w którym pojawia się błąd „Zakończył się serwis źródłowy”, a wszystkie podświetlanie składni i uzupełnianie kodu znikają w Swift. Jak mogę to naprawić?
Oto przykładowy obraz:
Mam problem z Xcode, w którym pojawia się błąd „Zakończył się serwis źródłowy”, a wszystkie podświetlanie składni i uzupełnianie kodu znikają w Swift. Jak mogę to naprawić?
Oto przykładowy obraz:
Odpowiedzi:
Odpowiedzią dla mojej (Xcode6-Beta7) było po prostu usunięcie folderu danych pochodnych.
Preferences > Locations > Derived Data > click the arrow to open in Finder > trash it.
Mam nadzieję, że to komuś pomoże. Jest oczywiście wiele powodów, dla których ta awaria może wystąpić.
Myślę, że mogłem znaleźć rozwiązanie bardziej ogólnego przeznaczenia. Poniżej znajdują się kroki, które zachęciłem Xcode, aby nie generował SourceKitService Terminated
błędu.
Error running playground: Failed prepare for communication with playground.
zobacz to zdjęcie na Twitterze .OS X
na iOS
, otrzymywałem kolejny błąd (niestety tego nie zapisałem).SourceKitService Terminated
problem w tym wątku.IDEPlaygroundDocument: Error encountered running playground
com.apple.CoreSimulator.CoreSimulatorService[3952]: The runtime for the selected device is not installed.
Jeśli masz problem tylko w kontekście projektu Swift, spróbuj najpierw sam. Jeśli to nie zadziała, spróbuj wykonać wszystkie poniższe kroki.
Bardziej długi i zaangażowany proces. (Pierwsze 3 kroki nie są na pewno pomocne, ale zrobiłem je, więc nagraj je tutaj)
OS X
celu iOS
.Wygląda na to, że problem polega na tym, że Xcode6 nie jest w stanie poprawnie znaleźć i połączyć się z symulatorem. Nie udało mi się ustalić, dlaczego tak jest, ale pozwoliło mi to kontynuować rozwój w Swift. Może to mieć związek z faktem, że pliki binarne symulatora zostały przeniesione .
Wystarczy usunąć „ModuleCache”, jest to rodzaj pamięci podręcznej używanej przez Xcode do autouzupełniania.
Skopiuj i wklej następujący wiersz w terminalu:
rm -rf ~ / Library / Developer / Xcode / DerivedData / ModuleCache
SourceKitService ulega awarii w moim systemie, gdy tylko piszę
extension foo {
Używam Xcode 6 beta 6 i nie ma znaczenia, czy wpisuję go w pustym pliku, czy dodam do istniejącego. Gdy tylko źródło zawiera jeden extension
blok, nastąpi awaria. Dzieje się tak nawet w przypadku nowo tworzonych projektów.
Moim „rozwiązaniem” jest unikanie rozszerzenia w źródłach, nad którymi obecnie pracuję. Komentuję koniec bloku klasy i początek bloku rozszerzenia. Zaraz po zakończeniu pracy nad klasą komentuję je ponownie:
class MyClass {
[... my stuff ...]
//}
//
//extension MyClass {
}
Zaczęło się dziać w moim projekcie spritekit po wstawieniu funkcji touchesMoved. Ta funkcja używa wymuszonego rozpakowywania, co wydaje się powodować problem:
override func touchesMoved(touches: NSSet!, withEvent event: UIEvent!)
Po usunięciu wykrzykników i zatrzymaniu wymuszonego rozpakowywania SourceKitService przestał się zawieszać.
Mam nadzieję że to pomoże!
Znalazłem rozwiązanie na forach programistów Apple (które wymaga logowania, więc wyjaśnię to tutaj).
TLDR : Nie importuj a @protocol
w nagłówku Objective-C do Swift mostkowania o nazwie takiej samej jak @interface
. Na przykład zestaw SDK Facebooka ma zarówno protokół, jak i interfejs o nazwie „FBGraphObject”.
Oto post na forum:
Dodanie Facebook SDK powoduje awarię SourceKitService. Jeśli chcesz korzystać z wersji beta 3 i potrzebujesz Facebook SDK, jednym z rozwiązań, które znalazłem i które działa dla mnie, jest refaktoryzacja @protocol FBGraphObject Facebook SDK i zmiana nazwy na coś takiego jak @protocol FBGraphObjectProtocol jako @ interfejs Interfejs FBGraphObject również istnieje i prawdopodobnie SourceKit nie lubi tego
Jest to z pewnością tymczasowe rozwiązanie zapewniające funkcjonalność. Będziesz musiał korzystać z Cocoapods lub w inny sposób samodzielnie budować zestaw SDK Facebooka, zamiast korzystać z biblioteki frameworka.
Na razie musisz upewnić się, że nie masz sprzecznych deklaracji @protocol i @interface, a także bibliotek zewnętrznych, których możesz używać.
Kosztowało mnie to dzisiaj, mam nadzieję, że to pomaga!
Wysłany przez e.parto na 10 lipca 2014
3.17.1
W projekcie użyj innej nazwy niż Swift. „Swift” jest zarezerwowany.
UIView
.
Aby to naprawić, możesz mieć dziwny problem z kodem Swift. Na przykład posiadanie wielu definicji IBOutletów, ponieważ byłeś w trakcie kopiowania i wklejania. zwykle jest to tylko błąd składniowy, którego nie można było obsłużyć.
Zamknij Xcode, jeśli jest otwarty. Następnie z terminalu uruchom:
defaults delete com.apple.dt.Xcode
Spowoduje to przywrócenie domyślnych ustawień Xcode. Otwórz Xcode i wszystko powinno znów działać.
Dla mnie (xcode 6.1) powodem było to, że zapomniałem dostosować moją podklasę do protokołu.
Na przykład jest to źle:
protocol SomeProtocol { ... }
class A :NSObject, SomeProtocol {
...
}
class B : A {
...
}
i to jest w porządku:
protocol SomeProtocol { ... }
class A : NSObject, SomeProtocol {
...
}
class B : A, SomeProtocol {
...
}
Program składający się tylko z tych dwóch wierszy (być może niepoprawny pod względem składni Swift) jest wystarczający, aby spowodować błąd „Zakończono SourceKitService”
var x = 42
println("Hello", x)
Użycie let
zamiast var
powoduje, że edytor zachowuje się normalnie. Wersja Xcode 6.0 (6A215l)
Mam dzisiaj ten sam problem, chodziło o to println
, właśnie wypróbowałem stary styl NSLog, aby wydrukować wartość:
// something like this
println("value = %@", valueObj)
Sposób, w jaki powinniśmy szybko komponować ciągi, ewoluował ze stylu printf do stylu wbudowanego, więc teraz osadzasz swoje wartości bezpośrednio w ciągu formatu:
"Here goes \(YOUR_VARIABLE)"
Tak więc w powyższym przykładzie rozwiązaniem jest:
println("value =\(valueObj)")
Miałem ten sam problem z Xcode6 beta 3 dla projektu utworzonego w wersji beta 2.
Było tak z powodu nowych przełomowych zmian w szybkim języku, tj. Składni deklaracji tablicowej.
Sprawdź, czy kod został wykonany z powodu przełamujących zmian w wersji beta 3.
Jednym z przykładów w moim przypadku było:
Musiałem zmienić:
var tabBarController : UITabBarController = self.window?.rootViewController as UITabBarController;
do
var tabBarController : UITabBarController = self.window!.rootViewController as UITabBarController
Wniosek: wygląda na to, że występuje błąd w kodzie źródłowym, w niektórych warunkach błąd ten jest generowany przez Xcode.
Rozwiązanie do momentu naprawienia błędu: Sprawdź błąd ręcznie :)
Powodzenia!
Rozwiązaniem dla mnie była zmiana symulatora. Używałem iPhone'a 5S do mojego symulatora, a kiedy przełączyłem go na iPhone'a 5, wszystko działało idealnie. Mamy nadzieję, że przyszła wersja całkowicie to naprawi.
Myślę, że wymyśliłem jeden (ponieważ prawdopodobnie jest wiele) powodów, dla których tak się dzieje.
W moim przypadku importowałem pliki Objective-C przez Bridging Header, który miał jedną z następujących prawd:
Naprawianie problemu w aplikacjach w plikach Objective-C LUB usunięcie importu tych plików w nagłówku pomostowym razem wydaje się rozwiązać problem.
Do Twojej wiadomości - jeśli chcesz ustawić cel plików nagłówka (.h), które nie mają pliku implementacji (.m), możesz wykonać następujące proste kroki: Nie można zmienić widoczności docelowego członkostwa w Xcode 4.5
Aby dodać jeszcze jedno potencjalne rozwiązanie, przypadkowo nazwałem klasę var taką samą nazwą jak jej typ:
class var Settings:Settings {
get { return classVarWorkAround.settings }
}
Spowoduje to awarię SourceKit NA PEWNO. Głupi błąd składniowy, ale na wypadek, gdyby ktoś popełnił ten sam błąd.
Edycja: również według @Portland Runner:
Podobnie, jeśli ustawisz typ zwracany na nazwę func, otrzymasz błąd.
func foo() ->foo{}
func foo() ->foo{}
(dodaj ją do swojej odpowiedzi)
Kiedy ten błąd zacznie się pojawiać, po prostu skomentuj ostatni / ostatnio napisany fragment kodu i poczekaj chwilę. Podświetlanie składni powinno się ponownie pojawić. W ten sposób rozwiązuję problem.
func someFunc() -> (Int?, Int?, Int?) {
var retVal1:Int? = nil
var retVal2:Int? = nil
var retVal3:Int? = nil
//some other code
//commenting out the line below helped me
//(retVal1, retVal2, retVal3)
return (retVal1, retVal2, retVal3)
}
Zgłoszone do Apple (# 17266321):
Detale:
Podsumowanie: Jeśli spróbujemy wydrukować słownik z wartością jako tablicą, pojawi się wyskakujące okienko z napisem „SourceKit zakończony. Funkcjonalność edytora ograniczona czasowo”. Xcode zawiesza się i traci rozpoznawanie kontekstu, powodując czernienie tekstu.
Kroki do odtworzenia: 1. Utwórz tablicę jako - „var iOSHistoryArray = [„ iOS6 ”,„ iOS7 ”,„ iOS8 ”,]„
Utwórz słownik jako - „var MacOSYosemiteFeatures: Dictionary = [„ Device ”: iOSHistoryArray]”.
Wydrukuj słownik jako - „println („ Słownik zawierający wartość Array:% @ \ n ”, MacOSYosemiteFeatures)” (<< - Culprit - >>)
Krok 3 powoduje komentowanie problemu, dzięki czemu Xcode działa ponownie.
Oczekiwane wyniki: Xcode powinien działać normalnie.
Rzeczywiste wyniki: Xcode przestaje działać, traci rozpoznawanie kontekstu (cała czcionka zostaje utracona, a cały tekst staje się zwykły czarny), cały Xcode staje się nieaktywny.
Wersja: Wersja 6.0 (6A215l)
Spróbuj:
W kompilatorze / indeksatorze Swift występuje błąd. Niektóre linie lub wiersze w kodzie sprawiają trudności. Będziesz musiał edytować kod za pomocą innego edytora tekstowego, aby skomentować linię (y) obrażającą, zanim będziesz mógł otworzyć ten projekt za pomocą Xcode. Jeśli nie masz pojęcia, na czym polega problem, skomentuj cały kod. Po otwarciu projektu możesz stopniowo przywracać kod, dopóki wzrost aktywności procesora nie powie, że znalazłeś problem.
Problem:
Mój przypadek: Zainstalowałem wersję beta 3, tylko OSX, jeden plik wykrył, że operator „zakresu pół-zamkniętego zakresu został zmieniony z… na… <”. Pojawi się wyskakujące okienko, a podświetlenie kodu przestanie działać.
Rozwiązanie:
W xcode przejdź do paska menu >> okno >> urządzenia (shift + cmd + 2), pojawi się nowe okno, aw lewym dolnym rogu dodaj nowy symulator, a konkretnie działający na iOS 8.0 do istniejącej listy edycji : może być konieczne ponowne uruchomienie xcode
odwołanie: http://www.reddit.com/r/swift/comments/2bznfo/error_running_playground_unable_to_find_suitable/
Miałem ten sam błąd w zagnieżdżonym projekcie Objective-C ++, który teraz zawiera Framework z kodem Swift. Aby rozwiązać ten problem, musiałem wyraźnie zbudować platformę. Kiedy to zrobiłem, problem zniknął i nie wraca;)
Nadal dzieje się z wersją xcode 6 6.0 (6A313)
Awarie
ps: nowy Mac mini, bez wcześniejszych instalacji xcode, nic egzotycznego. Chyba tylko produkt w wersji beta.
Xcode 6.1 Beta 3:
Gdy tylko zdefiniujesz nieprywatny alias typu (np. typealias Foo = Int
) W jednym pliku Swift, wpisz literę c
w innym pliku, SourceKitService ulega awarii.
Rozwiązaniem jest zrezygnowanie z używania aliasów typów, poczekanie na następną wersję beta lub zawarcie aliasów typów w definicjach klas:
public class DummyClass {
public typealias Foo = String
}
i użyj tego w ten sposób:
var myVar:DummyClass.Foo?