16 Stimmen

Fehler: "-[NSCFString sizeWithTextStyle:]: nicht erkannter Selektor" in IPhone SDK

Ich erhalte folgende Fehlermeldung beim Ausführen meiner Anwendung.

-[NSCFString sizeWithTextStyle:]: nicht erkannter Selektor

Ich habe sizeWithTextStyle in meinem gesamten Projekt nicht verwendet.

Was könnte also falsch sein?

Ich erhalte einen Fehler bei return pos; nachstehende Erklärung

Code:

(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
     UIView *pos = [[UIView alloc] initWithFrame:CGRectMake(0.0,0.0,320.0,35.0)];
     return pos;
}

Fehler in der Konsole:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString sizeWithTextStyle:]: unrecognized selector sent to instance 0x7044b50'

Wegen des Einrückungsproblems beim Einfügen des gesamten Absturzprotokolls hier, füge ich den Screenshot des Absturzprotokolls ein

enter image description here

29voto

iHS Punkte 5144

Ich denke, das Problem liegt woanders, nicht in dieser Codezeile. Das Objekt ist nicht in der Lage, sich selbst zu behalten. Posten Sie den Code, in dem Sie die sizeWithTextStyle Methode

Haben Sie das Flag -all_load in Ihren Link-Einstellungen gesetzt?

Diese Frage stellt sich häufig. Sie müssen -all_load und -ObjC zu den Linkflags Ihrer Anwendungen hinzufügen.

* EDIT: *

Der Absturz scheint online aufzutreten:

 CGSize textSize = [self.text sizeWithTextStyle:textStyle];
 in class: CPTextLayer method: sizeToFit

 which is called from within class CPTextLayer method initWithText:
-(id)initWithText:(NSString *)newText style:(CPTextStyle *)newStyle
....
[self sizeToFit];

**try to set with iOS 4 and not with 3.1.3 **

4voto

dreamlax Punkte 91447

Wenn Sie Probleme mit der Speicherverwaltung haben (Selektoren, die an die falschen Instanzen gesendet werden, sind ein Symptom für Probleme mit der Speicherverwaltung), gibt es eine Reihe von Möglichkeiten:

  1. Lesen Sie den Kakao erneut Regeln für die Speicherverwaltung und stellen Sie sicher, dass Sie sie befolgen.
  2. Führen Sie die statischer Analysator . Dadurch werden oft Stellen gefunden, an denen Sie die Regeln der Speicherverwaltung vernachlässigt haben.
  3. Versuchen Sie es mit NSZombieEnabled um herauszufinden, ob [und wann] Sie Nachrichten an nicht zugewiesene Instanzen senden.

3voto

Preethi Punkte 195

Ich habe auch den gleichen Fehler, aber jetzt ist er behoben.

Sie müssen eine einfache Sache tun, nämlich den Wert von Other linker flag setzen.

Im Folgenden habe ich die Schritte aufgeführt.

Projektname - Build-Einstellung - Andere Linker-Flags (mit der Suchleiste suchen) - "-ObjC"

0voto

Nava Carmon Punkte 4473

Sie sollten Ihren Code so ändern, dass Sie Zeiger wie diesen verwenden:

UIView *pos = [[UIView alloc] initWithFrame:CGRectMake(0.0,0.0,320.0,35.0)]; 
     return pos;

Achten Sie auf das Sternchen!

Und natürlich die ; am Ende der Zuteilungserklärung!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X