2016-08-30 3 views
3

Ich habe versucht, 8. Auto-Layout in einem Spielplatz auf Xcode verwenden jedoch sobald ich die Zeile hinzugefügt, ich erhalten diese Fehler gestartet:XCode 8 seltsam Spielplatz Fehler, konnte nicht Lookup Symbole

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 

Ich habe keine Ahnung, was das bedeutet. Ich meine, meine Interpretation ist, dass Xcode keine Bibliotheken wie UIKit finden kann, aber ich weiß, dass das nicht der Fall ist, da ich UIKit verwendet habe und so gut, bis diese Linie des Auto-Layouts die Party zerstört hat. Der Quellcode ist wirklich klein, so schließe ich es in seiner Gesamtheit:

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) 

Die dritte Zeile von unten der Quelle scheint das Problem zu verursachen. Ist das etwas, das ich vermasselt habe oder ist es ein Beta-Bug? Ich bin hier verloren.

Antwort

3

Fügen Sie field als Unteransicht von view hinzu und legen Sie Ihre Einschränkungen fest. Es gibt eine Ausnahme, die ausgelöst wird, wenn Einschränkungen für Ansichten hinzugefügt werden, die sich nicht in derselben Ansichtshierarchie befinden.

Zum Beispiel:

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 

Sie müssen auch in der Regel nennen view.layoutIfNeeded()

0

ich die playground file of swift tour von Apple Entwickler-Seite und klicken Sie doppelt mit Xcode 9.2 zu öffnen heruntergeladen und bekam den gleichen Fehler oben erwähnt.

Dann erstellte ich neue Spielplatz-Datei und fügte den Inhalt der heruntergeladenen Datei und es wurde ohne Fehler ausgeführt.

Bearbeiten # 1: Sogar Drag N Drop-Dateien auf neu erstellte Spielplatz gelöst die Fehler.

Bearbeiten # 2: Als ich meinen neu erstellten Spielplatz wieder öffnete, zeigte es den gleichen Fehler. Dann ich zu verschiedenen Dateien navigiert und dies machte den schnellen Prozess die Dateien und Fehler verschwunden. Also, ich wiederholte das mit der heruntergeladenen Datei und diese Fehler verschwanden auch und der Code wurde ausgeführt.

Verwandte Themen