- Registriert
- 29.10.09
- Beiträge
- 31
Hallo zusammen,
da ich in meinen Semesterferien nun endlich wieder ein bisschen Zeit habe, beschäftige ich mich wieder mit Cocoa und Objective-C. Dazu arbeite ich das Buch von Amin Negm-Awad durch (sehr zu empfehlen übrigens). Derzeit bin ich etwa in der Mitte des Buches und halte mich für fähig einfache Foundation Applikationen zu schreiben. Um nun selbst ein wenig zu schauen ws ich bisher verstanden habe, wollte ich eine kleine Anwendung schreiben um mit komplexen Zahlen zu rechnen. Leider scheitert mein Vorhaben nach der Initialisierung zweier Instanzen undzwar bei der Ausgabe.
Ich poste einfach mal die einzelnen Codes des Headers, der Implementierung sowie des Programmms:
der Header
die Implementierung
und hier das Programm
Sicherlich ist es irgendeine Kleinigkeit die ich aber nicht selbst finde. Danke euch für die Hilfe vorab!
Grüße
Marcus
da ich in meinen Semesterferien nun endlich wieder ein bisschen Zeit habe, beschäftige ich mich wieder mit Cocoa und Objective-C. Dazu arbeite ich das Buch von Amin Negm-Awad durch (sehr zu empfehlen übrigens). Derzeit bin ich etwa in der Mitte des Buches und halte mich für fähig einfache Foundation Applikationen zu schreiben. Um nun selbst ein wenig zu schauen ws ich bisher verstanden habe, wollte ich eine kleine Anwendung schreiben um mit komplexen Zahlen zu rechnen. Leider scheitert mein Vorhaben nach der Initialisierung zweier Instanzen undzwar bei der Ausgabe.
Ich poste einfach mal die einzelnen Codes des Headers, der Implementierung sowie des Programmms:
Code:
#import <Cocoa/Cocoa.h>
@interface Complex : NSObject {
double realTeil;
double imaginaerTeil;
}
@property(readwrite) double realTeil;
@property(readwrite) double imaginaerTeil;
+(Complex*)complexWithRealTeil:(double)realTeil imaginaerTeil:(double)imaginaerTeil;
-(id)initWithRealTeil:(double)initRealTeil imaginaerTeil:(double)initImaginaerTeil;
@end
Code:
#import "Complex.h"
@implementation Complex
@synthesize realTeil,imaginaerTeil;
#pragma mark overwrite init
-(id)init
{
return [self initWithRealTeil:0.0 imaginaerTeil: 0.0];
}
#pragma mark Convenience-Allocator
+(Complex*)complexWithRealTeil:(double)realTeil imaginaerTeil:(double)imaginaerTeil
{
return [[[self alloc] initWithRealTeil:(double)realTeil imaginaerTeil:(double)imaginaerTeil] autorelease];
}
#pragma mark initializer
-(id)initWithRealTeil:(double)initRealTeil imaginaerTeil:(double)initImaginaerTeil
{
self=[super init];
if (self) {
self.imaginaerTeil=initRealTeil;
self.realTeil=initImaginaerTeil;
}
return self;
}
#pragma mark dealloc
-(void)dealloc
{
self.realTeil=0.0;
self.imaginaerTeil=0.0;
[super dealloc];
}
@end
Code:
#import <Foundation/Foundation.h>
#import "Complex.h"
int main (int argc, const char * argv[]) {
Complex* c1;
Complex* c2;
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// Instanzen initialisieren
c1 = [Complex complexWithRealTeil:3.0 imaginaerTeil:4.0];
c2 = [Complex complexWithRealTeil:5.0 imaginaerTeil:8.0];
// Ausgabe beider komplexen Zahlen
NSLog("c1 Re: %f, Im: %f",c1.realTeil,c1.imaginaerTeil);
NSLog("c2 Re: %f, Im: %f",c2.realTeil,c2.imaginaerTeil);
[pool drain];
return 0;
}
Sicherlich ist es irgendeine Kleinigkeit die ich aber nicht selbst finde. Danke euch für die Hilfe vorab!
Grüße
Marcus