Diese Frage mag ein bisschen lang erscheinen, aber ich versuche so viele Informationen wie möglich zu geben, da ich davon wirklich sehr erschüttert bin.
Ich arbeite derzeit an einer Bibliothek , die das Parsen von XML-Dokumenten automatisieren soll. Aber ich stoße jetzt auf ein Problem und teste die Bibliothek zum ersten Mal.
Ich habe eine Bibliotheksklasse namens CSXDocumentLayout
, die das Layout eines Dokuments darstellt. Diese Klasse enthält die private Methode - (NSError *)readLayoutDocument:(NSString *)fpath
, die von einer init-Methode aufgerufen wird.
Diese Methode liest ein XML-Dokument ein, das das Layout eines anderen XML-Dokuments darstellt. Es wird von der Klasse CSXXMLParser
analysiert, die ich testen möchte.
Ich erstelle ein Objekt, das ein Layoutdokument mit +[CSXDocumentLayout layoutDocumentLayout]
darstellt. Diese Methode ist in der Kategorie CSXDocumentLayout (CSXLayoutObject)
implementiert.
Unten ist meine Testdatei:
%Vor%Diese Datei wird in eine separate ausführbare Datei kompiliert, die mit meiner statischen Bibliothek libceasyxml.a verknüpft ist. Alles kompiliert gut ohne Warnungen.
Aber wenn ich es ausführe, bekomme ich einen nicht erkannten Selektor an die Ausnahme gesendet:
%Vor% Ich finde es sehr beunruhigend, dass ich die Klassenmethode +[CSXDocumentLayout(CSXLayoutObject) layoutDocumentLayout]
nicht aufrufen kann, obwohl ich sowohl -[CSXDocumentLayout initWithLayoutDocument:error:]
als auch -[CSXDocumentLayout(Private) readLayoutDocument:]
aufrufen kann.
Ich habe überprüft, ob die Methode in den Ausgabedateien definiert ist, indem ich nm file
ausfühle und es ist gut, teilweise:
In libceasyxml.a ist (nm libceasyxml.a)
definiert %Vor% In TestApp ist es NICHT definiert (nm TestApp) , tatsächlich kann ich keine Methode mit dem Kategorienamen CSXLayoutObject
finden.
Ich vermute, dass Sie auf ein bekanntes Problem von Kategorien stoßen, die in statische Bibliotheken eingebettet sind .
Wenn ich Recht habe, versuche mit den Linkerflags -ObjC
zu kompilieren (und wenn das nicht genug ist, auch -all_load
) und dein Problem sollte verschwinden.
Obwohl die Antwort bereits ausgewählt wurde, wünschte ich, die Lösung für mein Problem wäre hier, so einfach es auch sein mag. Stellen Sie sicher, dass Ihre Klasse im Feld " Target Membership
" im Bereich " File Inspector
" ordnungsgemäß überprüft wurde. Wenn Sie dies nicht tun, ist es nur natürlich, den Fehler unrecognized selector sent to class
zu erhalten.
Tags und Links objective-c cocoa extension-methods foundation unrecognized-selector
Mit JQuery Mobile 1.3 müssen Sie jetzt die Klasse "ui-nodisc-icon" hinzufügen, ohne sich mit CSS herumärgern zu müssen.
von der JQuery-Website :
"Wenn Sie den dunklen Kreis hinter den Symbolen nicht benötigen, fügen Sie einfach das ui-nodisc-Symbol zum Element oder seinem Container hinzu , um den Symbolhintergrund zu entfernen."
Ich baue meinen ersten Phonegap Jquery Appl Ich ändere mein Icon mit dieser Klasse
%Vor%Dieses benutzerdefinierte Symbol ist für eine Listenansicht, und ich versuche, die runde graue Hintergrundlast zu entfernen Auch mein Bild ist ein bisschen groß für die Form Ich habe mit dem .ui-Icon gespielt, funktioniert aber nicht Kann die Klasse nicht finden
Ich möchte nur meine benutzerdefinierte Pfeil Bild in voller Größe auf einem weißen Hintergrund Liste keine runde keine Kreis-Box-Form Vielleicht gibt es ein Attribut oder über CSS, um das zu machen Danke
Das sollte funktionieren.
%Vor%Für diejenigen von euch, die nur ein Icon für den Button haben wollen - ich fand diesen Artikel sehr nützlich! Ich folgte den "Reset the button theme" und "Icon-only buttons" Abschnitten, um den gewünschten Effekt zu erzielen.
Ich löste dieses Problem mit:
%Vor%Wenn Sie Farbe im Hintergrund hinzufügen möchten, können Sie verwenden:
%Vor%Überschreibt die Farbe der Symbol-Disc auf Weiß.
%Vor%Die Symbolgröße wird in %code% class angegeben, standardmäßig auf %code% .
%Vor%Wenn Sie jQuery v 1.4.0 + verwenden, müssen Sie nur die Klasse %code% zu Ihrem Verknüpfungselement hinzufügen, um diesen störenden Kreis zu entfernen. Sie müssen kein CSS bearbeiten oder irgendwelche Überschreibungen schreiben.
Spät zur Party hier, aber eine einfache Antwort ist
hinzuzufügen %Vor%zu Ihrem benutzerdefinierten Klassennamen, also:
%Vor%ist alles was du brauchst.