Ich habe den folgenden Code mit F6
in Xcode 6
debugged, und die Reihenfolge der Ausführung ist sehr interessant.
Hier ist der Code - 7 Zeilen, ein Breakpoint wird in Zeile 1 gesetzt:
%Vor%Als ich den Code durchforstete, zeigte er die folgende Sequenz (die Zahlen sind Zeilennummern):
%Vor%Warum ist das? Ist das etwas mit Xcode oder der Sprache? Diese Klassen sind in Amazon AWS SDK definiert, nicht sicher, ob das wichtig ist, sie werden durch eine schnelle-objektive-c-Überbrückung zugegriffen, könnte dies mit der Überbrückung zusammenhängen.
Übrigens ist das Nettoergebnis der Ausführung korrekt.
Endlich habe ich eine Antwort auf meinen Fehlerbericht von Apple
erhalten, und es hört sich an, als wäre es ein Bug und wurde in einer Beta-Version von XCode
behoben. Wenn Sie nach einer Lösung suchen, versuchen Sie bitte die Beta:
Wir glauben, dass dieses Problem in der neuesten Xcode 6.3-Beta behoben wurde, einschließlich iOS 8.3 SDK mit Swift 1.2.
Bitte testen Sie mit dieser Version. Wenn Sie weiterhin Probleme haben, fügen Sie bitte alle relevanten Protokolle oder Informationen bei, die uns bei der Untersuchung helfen könnten.
Dies ist eine Vorabversion des vollständigen Xcode-Entwickler-Toolsets für Mac, iPhone, iPad und Apple Watch. Diese Version benötigt OS X Yosemite.
Xcode 6.3 - Build 6D520o Ссылка
Ich denke, was Sie beobachten, ist der Effekt der Compiler-Optimierungen. Es überschreibt Ihren Code zur Kompilierzeit. Aus diesem Grund ist es normal, die Optimierung ( -Onone
) bei Debug-Builds zu deaktivieren, aber bei Release-Builds ( -Ofast
oder -Os
) zu aktivieren.
Tags und Links objective-c xcode debugging swift