Ich habe benutzerdefinierte Klassen IBDesignable
in Swift, die einige Dinge tun, die Abstürze in Interface Builder verursachen. Gibt es eine Flagge, die ich überprüfen kann, um zu sehen, ob ich im Schnittstellenerzeuger laufe oder nicht? Idealerweise wäre es eine Precompiler-Direktive (#ifdef COMPILED_FOR_INTERFACE_BUILDER
oder etwas Ähnliches). Ich dachte, vielleicht könnte ich selbst eine Flagge in prepareForInterfaceBuilder()
setzen, aber das scheint chaotisch und scheint nicht zuverlässig zu funktionieren, da es aussieht, dass Klasseneigenschaften vor dem Aufruf dieser Funktion gesetzt werden und dies Code auslösen kann, der Probleme verursacht. Scheint so, als müsste es einen besseren Weg geben. Danke!Überprüfen, ob Code in Interface Builder ausgeführt wird
12
A
Antwort
11
Sie den Präprozessormakro TARGET_INTERFACE_BUILDER kann aus Ihrer benutzerdefinierten Ansichtsklasse mit oder Ausschlusscode für die Aufnahme angeben „
+0
Danke! Das war genau das, was ich suchte und aus irgendeinem Grund Keine Menge Googlen hat das Makro aufgedeckt. Sehr nützlich! –
Sie wissen nicht, warum diese Frage überstimmt wurde. Ich denke, es ist eine gute Frage. (Natürlich habe ich keine nützliche Antwort ...) – matt
Ich stimme zu. Dies wäre eine sehr nützliche Funktion. (Voted) –