Xcode 6.3 (und 6.2) trifft den Haltepunkt auf [UIFont fontWithName: size:]

8

In meiner iOS-Anwendung verwende ich eine Klasse (DKTheme), um meine Schriften und Bilder an einem zentralen Ort zu halten. meine Implementierung sieht so aus.

%Vor%

Und wenn ich diesen Code im Gerät (iPhone 5C, iOS8.3 und iOS8.2) ausführen, trifft xcode den Haltepunkt in der Zeile self.smallButtonFont = [UIFont fontWithName:@"Helvetica-Bold" size:13.0f]; , wenn ich auf die Schaltfläche zum Fortsetzen der Ausführung klicke, läuft die Anwendung weiter ohne Absturz und meine Fonteigenschaft ( self.smallButtonFont ) wurde erfolgreich initialisiert.

und ich bemerkte noch eine Sache, ich habe mehrere [UIFont fontWithName: size:]; Aufrufe und Haltepunkttreffer nur beim ersten Aufruf (wenn ich den ersten Kommentar mache, dann trifft der nächste Methodenaufruf den Haltepunkt). Es ist wirklich nervig dieses Breakpoint-Problem, jede Hilfe wäre dankbar.

    
Chathuranga Jayawardhana 26.04.2015, 06:00
quelle

5 Antworten

18

Sie haben eine Haltepunktausnahme in Xcode hinzugefügt und sie so konfiguriert, dass alle Ausnahmetypen, C ++ und Objective-C, unterbrochen werden. Das Problem besteht darin, dass C ++ - Code manchmal Ausnahmen für nicht ausnahmsweise Situationen verwendet. Es kann es nur als eine Form der Flusssteuerung verwenden oder "Fehler" von einer Funktion zurückgeben.

Wenn Sie keine spezielle C ++ - Ausnahme haben, die Sie debuggen müssen, weil sie tatsächlich ein Problem verursacht, sollten Sie diesen Breakpoint wahrscheinlich so konfigurieren, dass er nur Objective-C-Exceptions und nicht C ++ - Exceptions bricht. Die C ++ - Ausnahmen können ignoriert werden.

    
Ken Thomases 26.04.2015, 06:43
quelle
3

Dies geschieht immer, wenn Sie den Breakpoint All Exceptions hinzugefügt haben. Hier müssen Sie nur den Haltepunkt objective-c hinzufügen. Befolgen Sie diese Schritte:

  1. Wählen Sie Breakpoints Debugger, klicken Sie mit der rechten Maustaste auf "Alle Ausnahmen".

  1. Klicken Sie nun auf "Haltepunkt bearbeiten"

  2. Ändern Sie den Ausnahmetyp in "Objective-c Exception"

    
Mehul Thakkar 09.03.2016 11:43
quelle
1

Zuerst. Natürlich ist es Ausnahme Breakpoint. Sie können sie in der Registerkarte "Haltepunkte" hinzufügen oder löschen. Mein Screenshot kann dir dabei helfen.

Grund der Generierung dieser Ausnahmen:

Sie haben einige Standardschriftarten in iOS. Wenn Sie versuchen, mit nicht verfügbaren Schriftartnamen zu erstellen. Sie sehen eine Ausnahme wie diese. Vielleicht verwenden Sie in Ihrem Code einen anderen Schriftnamen. Ich meine nicht nur @ "Helvetica-Bold". Und jetzt hast du eine Frage: Wie kann ich jetzt, ist Schrift in meinem Betriebssystem verfügbar? Mit dieser Methode können Sie alle verfügbaren Schriftarten drucken:

%Vor%

Mit freundlichen Grüßen. Und bitte fügen Sie einige Informationen hinzu, wenn Sie immer noch dieses Problem haben.

    
ZevsVU 26.04.2015 07:19
quelle
0

Wenn Sie nicht einen Haltepunkt eingerichtet haben, könnte dies mit dem Aufruf von Methoden innerhalb von init zusammenhängen. unsichere Aufrufe an sich selbst

Siehe auch meine Anmerkungen zu Schriften-Caching und Laden .

    
GilesDMiddleton 26.04.2015 08:57
quelle
0

Ich hatte dieses Problem auch und löste es, ohne meine Haltepunkteinstellungen zu ändern. In meinem Fall bestand das Problem darin, dass meine App ein Framework hatte, dessen Datei info.plist eine bereitgestellte Schriftart auflistete, die auch von der App selbst als bereitgestellte Schriftart aufgelistet wurde (in Fonts provided by application ). Durch das Entfernen des Duplikats wurde dieses Problem behoben.

    
Ben Pious 11.05.2015 23:14
quelle

Tags und Links