Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>GNUSTEP-Beispielapplikation in XCode nachbauen

GNUSTEP-Beispielapplikation in XCode nachbauen

oliver kurlvink
oliver kurlvink07.02.0523:23
hi
<br>
<br>Ich hatte eben mal die kleine Taschenrechner-GNUSTEP-Beispielapplikation in XCode nachgebaut. Hat auch alles gut geklappt , nur wenn ich die Applikation starte kriege ich
<br>
<br>[Session started at 2005-02-07 22:21:19 +0100.]
<br>2005-02-07 22:21:22.876 SimpleCalc[12235] *** -[_NSControllerObjectProxy copyWithZone:]: selector not recognized
<br>2005-02-07 22:21:23.008 SimpleCalc[12235] An uncaught exception was raised
<br>2005-02-07 22:21:23.030 SimpleCalc[12235] *** -[_NSControllerObjectProxy copyWithZone:]: selector not recognized
<br>2005-02-07 22:21:23.049 SimpleCalc[12235] *** Uncaught exception: *** -[_NSControllerObjectProxy copyWithZone:]: selector not recognized
<br>
<br>Executable “SimpleCalc” has exited due to signal 5 (SIGTRAP).
<br>
<br>Wo kann denn das her kommen?
<br>
<br>MyController.h
<br>/* MyController */
<br>
<br>#import
<br>
<br>@interface MyController : NSObject
<br>{
<br> IBOutlet id result;
<br> IBOutlet id valueA;
<br> IBOutlet id valueB;
<br>}
<br>- (IBAction)calculate:(id)sender;
<br>@end
<br>
<br>MyController.m
<br>#import "MyController.h"
<br>
<br>@implementation MyController
<br>
<br>- (IBAction)calculate:(id)sender
<br>{
<br> float res = [valueA floatValue] * [valueB floatValue];
<br> [result setFloatValue: res];
<br>}
<br>
<br>@end
<br>
0

Kommentare

dtlmtn08.02.0502:42
Der Code ist ok, es sieht eher danach aus als wäre ein Objekt im Interface Builder nicht richtig gesetzt oder verbunden. Von welcher Klasse ist das &rsquo;Files Owner&rsquo; Objekt? (Files Owner anklicken, Command-5 drücken).
<br>
<br>Offenbar erfolgt die Fehlermeldung beim Alloc eines Objekts beim Programmstart (copyWithZone). Das ist nicht so ganz einfach zu lokalisieren da es vor dem Ausführen deines eigenen Codes passiert.
<br>
<br>Eine Idee: Starte das Programm im XCode Debugger, sobald der Fehler auftritt werden im Debug Fenster die aufgerufenen Methoden angezeigt (in umgekehrter Reihenfolge, also alle von der Fehlermethode bis zu NSApp, siehe Bild). Das hilft herauszufinden welches Objekt von welchem anderen falsch aufgerufen wird.
<br>
<br>Hilft dir das weiter?
<br>
0
dtlmtn08.02.0503:11
Falls nicht, schick mir mal das Projekt (also den ganzen Ordner, am besten gezipped)...
0
oliver kurlvink
oliver kurlvink08.02.0507:36
So, ich hab jetzt noch ein wenig geschaut. Beim ersten Eingabefeld muss mir ein Binding zu irgendwas reingerutscht sein. Das habe ich entfernt und danach ging es. Gefunden habe ich es übrigens durch die Kompatibilitätsüberprüfung und den Vergleich mit 10.1 .
<br>
<br>Insgesamt ja sehr nett. Die Entwicklung von sowas winzigem geht ja noch schneller als in GNUSTEP. Das einzige was mir aufgefallen ist war, dass man die Connections in GNUSTEP per Drag and Drop macht und im Interface Builder per STRG-Drag. Da muss man erst einmal drauf kommen .
0
dtlmtn08.02.0508:54
Was machst Du mit GnuStep? Ich kenne lediglich NextStep (auf NeXTstation anno 1992) und OS X (de factor NextStep 5.0, selbst die Klassennamen fangen ja mit "NS" an).
<br>
<br>Als Einführung in Interface Builder und Project Manager kann ich folgendes Buch empfehlen: "Building Cocoa Application" von Garfinkel und Mahoney. Kennst Du das? Ist eine Überarbeitung des NeXT-Klassikers von 1990.
<br>
<br>Ansonsten ist CocoaDevCentral http://www.cocoadevcentral.com/ zu empfehlen, schöne Beispiele zu vielen Teilen des AppKits.
<br>
0
oliver kurlvink
oliver kurlvink08.02.0509:05
Nein, kenne ich nicht, steht aber auf meiner Kaufen-Liste . Ich fange aber eigentlich gerade an Java zu lernen und wollte danach dann mit Cocoa/Objective-C weiter machen. Das kleine GNUSTEP-Beispiel hatte dann aber meine Neugier geweckt
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.