У мене виникає проблема з Xcode, коли з'являється помилка "Сервіс встановлення джерела", і все підсвічування синтаксису та завершення коду відсутнє в Swift. Як я можу це виправити?
Ось приклад зображення:
У мене виникає проблема з Xcode, коли з'являється помилка "Сервіс встановлення джерела", і все підсвічування синтаксису та завершення коду відсутнє в Swift. Як я можу це виправити?
Ось приклад зображення:
Відповіді:
Моєю відповіддю (Xcode6-Beta7) було просто видалити папку "Отримані дані".
Preferences > Locations > Derived Data > click the arrow to open in Finder > trash it.
Сподіваюся, що це комусь допоможе. Очевидно, є багато причин, чому може статися цей збій.
Я вважаю, що, можливо, я знайшов більш загальне рішення. Нижче наведено кроки, якими я заохочував Xcode не видавати SourceKitService Terminated
помилку.
Error running playground: Failed prepare for communication with playground.
Дивіться це зображення на Twitter .OS X
до iOS
, я отримав би іншу помилку ( до жаль , я не писав , що один вниз).SourceKitService Terminated
проблему в цій темі.IDEPlaygroundDocument: Error encountered running playground
com.apple.CoreSimulator.CoreSimulatorService[3952]: The runtime for the selected device is not installed.
Якщо у вас виникають проблеми лише в рамках проекту Swift, спробуйте це спочатку. Якщо це не спрацює, спробуйте всі кроки далі нижче.
Більш тривалий і залучений процес. (Перші 3 кроки точно не корисні, але я їх зробив, і тому записую їх тут)
OS X
до iOS
.Здається, проблема в тому, що Xcode6 не в змозі належним чином знайти і підключитися до тренажера. Я не зміг визначити, чому це так, але це дозволило мені продовжувати розвиватися зі Свіфт. Це може бути пов'язано з тим фактом, що бінарні файли симулятора, схоже, перемістилися .
Вам просто потрібно видалити "ModuleCache", це якийсь кеш, який використовує Xcode для автозаповнення.
Скопіюйте та вставте наступний рядок у Терміналі:
rm -rf ~ / Бібліотека / Розробник / Xcode / DerivedData / ModuleCache
SourceKitService збоїв у моїй системі, як тільки я набираю текст
extension foo {
Я використовую Xcode 6 beta 6, і не має значення, ввожу я його в порожній файл або додаю його до вже наявного. Як тільки джерело містить один extension
блок, воно вийде з ладу. Це трапляється навіть на новостворених проектах.
Моє "рішення" - уникати розширення джерел, над якими я зараз працюю. Я коментую кінець блоку класу та початок блоку розширення. Як тільки я закінчую роботу над класом, я коментую їх ще раз:
class MyClass {
[... my stuff ...]
//}
//
//extension MyClass {
}
Це почалося в моєму проекті spritekit після вставки функції touchesMoved. Ця функція використовує примусове розгортання, що, здається, спричиняє проблему:
override func touchesMoved(touches: NSSet!, withEvent event: UIEvent!)
Після видалення знаків оклику та припинення примусового розгортання SourceKitService припинила збій.
Сподіваюсь, це допомагає!
Я знайшов рішення на Форумах розробників Apple (для якого потрібен логін, тому я поясню це також тут).
TLDR : Не імпортуйте @protocol
в об’єктивний заголовок Swift об'єктив-C в об'єктивний заголовок Swift, названий так само, як an @interface
. Наприклад, у SDK Facebook є як протокол, так і інтерфейс під назвою "FBGraphObject".
Ось допис на форумі:
Додавання SDK у Facebook призводить до збоїв SourceKitService. Якщо ви хочете використовувати бета-версію 3 і вам потрібен SDK для Facebook, одна робота навколо того, що я знайшов і працює для мене, - це реконструкція @protocol FBGraphObject Facebook SDK і перейменування його на щось на зразок @protocol FBGraphObjectProtocol, як @ інтерфейс, також існує FBGraphObject і, мабуть, SourceKit це не подобається.
Це впевнене, що це тимчасове рішення просто для того, щоб ви працювали функціонально, і вам доведеться використовувати Cocoapods або іншим чином самостійно створити SDK Facebook, а не використовувати рамкову бібліотеку.
Наразі вам потрібно переконатися, що у вас немає суперечливих декларацій @protocol і @interface, і це стосується сторонніх бібліотек, якими ви можете користуватися.
Це коштувало мене сьогодні, сподіваюся, що це допоможе!
Опубліковано e.parto на 10 липня 2014
3.17.1
Для проекту використовуйте інше ім'я, ніж Swift. "Швидкий" зарезервований.
UIView
.
Щоб виправити це, у вас може виникнути якась дивна проблема з вашим кодом Swift. Наприклад, маючи кілька визначень IBOutlets, оскільки ви опинилися в середині копіювання та вставки. Зазвичай це просто синтаксична помилка, з якою не можна було впоратися.
Закрийте Xcode, якщо він відкритий. Потім з терміналу запустіть:
defaults delete com.apple.dt.Xcode
Це відновить Xcode до налаштувань за замовчуванням. Відкрийте Xcode і все має працювати знову.
Для мене (xcode 6.1) причиною було те, що я забув прийняти свій підклас до протоколу.
Наприклад, це неправильно:
protocol SomeProtocol { ... }
class A :NSObject, SomeProtocol {
...
}
class B : A {
...
}
і це нормально:
protocol SomeProtocol { ... }
class A : NSObject, SomeProtocol {
...
}
class B : A, SomeProtocol {
...
}
Програми, що складається лише з цих двох рядків (можливо, неправильно з точки зору синтаксису Swift), достатньо, щоб викликати тут помилку "SourceKitService Terminated":
var x = 42
println("Hello", x)
Використання let
замість var
змушує редактор знову нормально поводитися. Версія Xcode 6.0 (6A215l)
У мене сьогодні є те саме питання, в чому справа println
, я просто спробував старий стиль NSLog, щоб надрукувати значення:
// something like this
println("value = %@", valueObj)
Спосіб, як ми повинні складати рядки в швидкому еволюції, еволюціонував від стилю printf до стилю inline, тому тепер ви вбудовуєте свої значення прямо у рядок формату таким чином:
"Here goes \(YOUR_VARIABLE)"
Отже, для наведеного вище прикладу рішення:
println("value =\(valueObj)")
У мене була проблема з Xcode6 beta 3 для проекту, створеного в бета-2.
Це було через нові зміни в швидкій мові, тобто синтаксис оголошення оголошень масиву.
Перевірте чинність коду через порушення змін у бета-3.
Одним із прикладів у моєму випадку був:
Мені довелося змінити:
var tabBarController : UITabBarController = self.window?.rootViewController as UITabBarController;
до
var tabBarController : UITabBarController = self.window!.rootViewController as UITabBarController
Висновок: Схоже, якщо у вихідному коді є помилка, в деяких умовах ця помилка створюється Xcode.
Вирішення проблеми, поки помилка не виправлена: Перевірте помилку вручну :)
Удачі!
Для мене трапилося рішення змінити тренажер. Я використовував iPhone 5S для свого симулятора, і коли я переключив його на iPhone 5, все працювало чудово. Сподіваємось, майбутня версія її повністю виправить.
Я виявив, що видалення отриманих даних з терміналу вирішує проблему до наступного збою. : S
Він розташований за адресою: / Користувачі / {Ім'я користувача} / Бібліотека / Розробник / Xcode / DerivedData / {Назва проекту} - {Випадкова послідовність символів}
Я сподіваюся, що це допомагає.
Я думаю, я з'ясував одну (оскільки, мабуть, багато) причин цього відбувається.
У моєму випадку я імпортував файли Objective-C через мостиковий заголовок, який мав одну з наведених нижче прав.
Виправлення цілей програми на файлах Objective-C АБО видалення імпорту цих файлів у мостовому заголовку все разом, здається, вирішує проблему.
FYI - Якщо вам потрібно встановити ціль файлів заголовка (.h), у яких немає файлу реалізації (.m), ви можете виконати наступні прості дії: Неможливо змінити видимість цільового членства в Xcode 4.5
Просто щоб додати тут ще одне потенційне рішення, я випадково назвав клас var такою ж назвою, як і його тип:
class var Settings:Settings {
get { return classVarWorkAround.settings }
}
Це вийде з ладу SourceKit БЕЗПЕЧНО. Дурна синтаксична помилка, але у випадку, якщо хтось інший зробить ту саму помилку.
Редагувати: також відповідно до @Portland Runner:
Аналогічно, якщо встановити тип повернення на ім’я функції, ви отримаєте помилку.
func foo() ->foo{}
func foo() ->foo{}
(сміливо додайте це у свою відповідь)
Коли ця помилка починає спливати, просто прокоментуйте останній / останній фрагмент коду, який ви написали, і почекайте деякий час. Підсвічування синтаксису має з’явитися знову. Ось як я вирішую проблему.
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)
}
Повідомлено в Apple (# 17266321):
Деталі:
Резюме: Якщо ми спробуємо надрукувати словник зі значенням як масив, спливаюче вікно продовжує з'являтися: "SourceKit припинено. Функціонал редактора тимчасово обмежений". Xcode Заморожується і втрачає розпізнавання контексту, внаслідок чого текст чорніє.
Крок для відтворення: 1. Створіть масив як - "var iOSHistoryArray = [" iOS6 "," iOS7 "," iOS8 ",]"
Створіть словник як - "var MacOSYosemiteFeatures: Dictionary = [" Device ": iOSHistoryArray]".
Роздрукуйте словник як - "println (" Словник, що містить значення масиву:% @ \ n ", MacOSYosemiteFeatures)" (<< - Culprit - >>)
Крок 3 викликає коментування проблеми, що робить Xcode знову функціональним.
Очікувані результати: Xcode повинен нормально функціонувати.
Фактичні результати: Xcode стає нефункціональним, втрачається розпізнавання контексту (втрачається весь шрифт і весь текст стає чорним), весь Xcode стає неактивним.
Версія: Версія 6.0 (6A215l)
Спробуй це:
У компіляторі / індексаторі Swift є помилка. Деякі рядки або рядки у вашому коді створюють труднощі. Вам доведеться відредагувати свій код у іншому текстовому редакторі, щоб прокоментувати рядки, що порушують права, перш ніж ви зможете відкрити цей проект за допомогою Xcode. Якщо у вас немає поняття, в чому проблема, прокоментуйте весь свій код. Як тільки проект буде відкрито, ви можете почати повертати код потроху, поки підвищення активності процесора не скаже вам, що ви знайшли проблему.
Проблема:
Мій випадок: встановлено бета-3, проект лише для OSX, один файл виявив, що "напівзакритий оператор діапазону змінено з .. на .. <". З'являється спливаюче вікно, а підсвічування коду починає виходити з ладу.
Рішення:
У xcode перейдіть у рядок меню >> вікно >> пристрої (shift + cmd + 2) з'явиться нове вікно, а в нижньому лівому куті додайте новий тренажер, зокрема одне, що працює на iOS 8.0 до існуючого редагування списку : вам може знадобитися перезапустити xcode
refrence: http://www.reddit.com/r/swift/comments/2bznfo/error_running_playground_unable_to_find_suitable/
У мене була така ж помилка з вкладеним проектом Objective-C ++, який тепер включає Framework з кодом Swift. Щоб виправити це питання, мені довелося чітко побудувати рамку. Після того, як я зробив це питання, його немає, і він не повертається;)
Все ще відбувається з xcode 6 Версія 6.0 (6A313)
Збитки
ps: абсолютно новий mac mini, відсутні попередні встановлення xcode, нічого екзотичного. Я думаю, просто бета-продукт.
Xcode 6.1 Beta 3:
Як тільки ви визначите псевдонім не приватного типу (наприклад typealias Foo = Int
) в одному файлі Swift, наберіть букву c
в іншому файлі, SourceKitService виходить з ладу.
Рішення - це або відмовитися від використання псевдонімів типу, дочекайтеся наступного випуску бета-версії або перегорніть псевдоніми типу у визначення класів:
public class DummyClass {
public typealias Foo = String
}
і використовувати його так:
var myVar:DummyClass.Foo?