Diese Anwendung ist ein umgeschriebener Code aus dem Buch Cococa und Objective C Up and Running .
Wenn ich versuche, alles zu Beginn zu verstehen, würde ich gerne wissen, wo ich einen Fehler gemacht habe, in dem Code unten. Für mich sieht alles gut aus.
Könnten Sie mir deshalb helfen, die Quelle der Warnung zu identifizieren?
%Vor% Ich habe das in der @implementation Photo
-Zeile in Photo.m
Quellcodedatei?
Foto.h
%Vor%Foto.m
%Vor%Ich benutze Snow Leopard 10.6.7 und Xcode 4.0.0.
Sofern es sich nicht um einen Tippfehler handelt, wurde Ihre Klassenmethode als + (Photo*) Photo
definiert. ist nicht implementiert (es gibt eine + (Photo*) Caption {}
-Methode, die nur ein Unfall ist.
Bearbeiten: Eine einfachere Möglichkeit, diese Funktionalität zu nutzen, ist die Verwendung von Eigenschaften , die eine Verknüpfung darstellen, die den Getter und Setter für eine Variable für uns erstellt (siehe diesen Link für ein gutes Anfänger-Tutorial) : iPhone 101 ) für Ihre Instanzvariablen wie folgt:
in Ihrer .h-Datei:
%Vor%in Ihrer .m-Datei:
%Vor%Sie erhalten diesen Fehler, weil Sie in Ihrer Header-Datei angegeben haben, dass es eine Methode geben würde:
%Vor%aber Sie haben es nicht in der m-Datei implementiert.
BEARBEITEN:
Es sieht so aus:
%Vor%sollte sein:
%Vor%Wenn Sie mit der Maus über die Warnung fahren, wird Ihnen normalerweise nicht mitgeteilt, welche Methode fehlt. Es gibt jedoch mindestens zwei weitere Möglichkeiten, diese Informationen zu erhalten:
Geben Sie Cmd-4 ein oder wählen Sie die Ansicht "Problemnavigator" (das Symbol! in einem Dreiecksymbol) und erweitern Sie dann die Warnung "Semantisches Problem" für dieses Problem. Sie werden dann eine Nachricht mit dem Hinweis "Methodendefinition für" "nicht gefunden" sehen.
Geben Sie Cmd-7 ein oder wählen Sie die Protokollansicht (das Symbol ganz rechts, das wie eine Beschriftungsblase aussieht), und wählen Sie dann das entsprechende Problem aus der Liste aus. Sie werden dieselbe Nachricht sehen.
Sie verpassen +photo
, weil Sie versehentlich caption
:
sollte
sein %Vor%Ihre .m-Datei enthält nicht die Implementierung für:
%Vor%Das ist die fehlende Methode.
Tags und Links objective-c xcode xcode4