Странная ошибка игровой площадки XCode 8, не удалось найти символы

Я пытался использовать автоматический макет в Playground на Xcode 8. Однако, как только я добавил строку, я начал получать эту ошибку:

Playground execution failed: error: Couldn't lookup symbols:
  __TWPCSo6UIView17PlaygroundSupport22PlaygroundLiveViewableS0_
  __swift_FORCE_LOAD_$_swiftCoreGraphics
  __swift_FORCE_LOAD_$_swiftDarwin
  __TMaC17PlaygroundSupport14PlaygroundPage
  __swift_FORCE_LOAD_$_swiftObjectiveC
  __swift_FORCE_LOAD_$_swiftUIKit
  _playground_log_hidden
  _playground_logger_initialize
  __swift_FORCE_LOAD_$_swiftCoreImage
  __swift_FORCE_LOAD_$_swiftDispatch
  __TFC17PlaygroundSupport14PlaygroundPageau7currentS0_
  __swift_FORCE_LOAD_$_swiftFoundation
  __TFC17PlaygroundSupport14PlaygroundPages8liveViewGSqPS_22PlaygroundLiveViewable__

* thread #1: tid = 0x14b6b4, 0x000000010f2f43c0 MyPlayground`executePlayground, queue = 'com.apple.main-thread', stop reason = breakpoint 1.2
  * frame #0: 0x000000010f2f43c0 MyPlayground`executePlayground
    frame #1: 0x000000010f2f39c0 MyPlayground`__37-[XCPAppDelegate enqueueRunLoopBlock]_block_invoke + 32
    frame #2: 0x000000010fe0c89c CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
    frame #3: 0x000000010fdf1944 CoreFoundation`__CFRunLoopDoBlocks + 356
    frame #4: 0x000000010fdf10b5 CoreFoundation`__CFRunLoopRun + 901
    frame #5: 0x000000010fdf0ad4 CoreFoundation`CFRunLoopRunSpecific + 420
    frame #6: 0x000000011518aa61 GraphicsServices`GSEventRunModal + 161
    frame #7: 0x0000000110996de4 UIKit`UIApplicationMain + 159
    frame #8: 0x000000010f2f36e9 MyPlayground`main + 201
    frame #9: 0x00000001132e068d libdyld.dylib`start + 1

Я без понятия что это значит. Я имею в виду, что моя интерпретация такова, что Xcode не может найти библиотеки, такие как UIKit, но я знаю, что это не так, поскольку я использовал UIKit и так хорошо, пока эта строка автоматического макета не разбила вечеринку. Исходный код действительно небольшой, поэтому я включаю его полностью:

import UIKit  
import PlaygroundSupport  
let view = UIView(frame: CGRect(x: 0, y: 0, width: 500, height: 500))  
view.translatesAutoresizingMaskIntoConstraints = false  
view.backgroundColor = UIColor.white  
PlaygroundPage.current.liveView = view  
let field = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 50))  
field.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 1).isActive = true  
field.backgroundColor = UIColor.red  
view.addSubview(field)

Третья строка снизу источника, кажется, вызывает проблему. Я что-то напортачил или это ошибка бета-версии? Я здесь заблудился.


person PopKernel    schedule 30.08.2016    source источник


Ответы (2)


Добавьте field как подвид view, затем установите ограничения. При добавлении ограничений для представлений, не входящих в ту же иерархию представлений, возникает исключение.

Например:

import UIKit
import PlaygroundSupport

let view = UIView(frame: CGRect(x: 0, y: 0, width: 500, height: 500))
view.backgroundColor = UIColor.white
PlaygroundPage.current.liveView = view
let field = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 50))

view.addSubview(field)

field.translatesAutoresizingMaskIntoConstraints = false
field.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 1).isActive = true
// add the rest of your constraints 
field.backgroundColor = UIColor.red

Вам также обычно нужно позвонить view.layoutIfNeeded()

person beyowulf    schedule 31.08.2016

Я загрузил игровой файл быстрого тура со страницы разработчика Apple и дважды щелкните, чтобы открыть с помощью Xcode 9.2, и получил ту же ошибку, упомянутую выше.

Затем я создал новый файл игровой площадки и вставил содержимое загруженного файла, и он работал без ошибок.

Редактировать №1: Даже перетаскивание файлов на вновь созданную площадку разрешило ошибки.

Изменить №2: Когда я повторно открыл свою недавно созданную площадку, она показала ту же ошибку. Затем я перешел к разным файлам, и это ускорило процесс, и файлы и ошибки исчезли. Итак, я повторил это с загруженным файлом, и эти ошибки также исчезли, и код выполнился нормально.

person zeeawan    schedule 06.01.2018