1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Problem mit Xcode

Dieses Thema im Forum "OS X-Developer" wurde erstellt von robertmini, 28.02.10.

  1. robertmini

    robertmini Fuji

    Dabei seit:
    01.10.09
    Beiträge:
    37
    Code:
    #import "KreisumfangController.h"
    
    @implementation KreisumfangController
    - (IBAction)pushStart:(id)sender {
    	double radius = [Radius doubleValue];
    	double durchmesser = radius * 2;
    	double umfang = durchmesser * pi;
    	
    	[Ergebnis setDoubleValue:umfang];
        
    }
    @end
    
    Also, ich glaub ihr versteht alle, was ich da versuche zu machen, jedoch kriege ich als Ergebnis immer 0. Auch wenn ich mit 3 statt π rechne....Da ich jedoch erst letzte Woche mit Xcode angefangen habe ist dieser Fehler wahrscheinlich ziemlich banal...aber vielleicht hilft mir ja jemand. :)

    Und dann habe ich noch eine Frage: Ich habe im Interface-Builder 3 Fenster, beim Start soll sich jedoch nur eines davon öffnen, die anderen sollen dann über actions aufgerufen werden. Wie geht das?

    Danke schonmal
    Robert

    EDIT: Radius und Ergebnis sind meine outlets
     
    #1 robertmini, 28.02.10
    Zuletzt bearbeitet: 28.02.10
  2. robertmini

    robertmini Fuji

    Dabei seit:
    01.10.09
    Beiträge:
    37
    Ups, ich war vorschnell, Problem 1 hat sich erledigt! Aber wie siehts mit den Fenstern aus?
     
  3. NSObject

    NSObject Braeburn

    Dabei seit:
    24.04.09
    Beiträge:
    44
    hi,

    bei den Fenstern, die nicht von Anfang an zu sehen sein sollen, machst du im Interface Builder einfach das Häkchen 'Visible at Launch' weg.

    Dann kannst du sie entweder direkt im InterfaceBuilder mit Buttons zum ein-/ausblenden verbandeln: Verbindung vom Button zum Fenster ziehen und aus dem Menü 'makeKeyAndOrderFront:' zum ein- bzw. 'orderOut:' zum ausblenden wählen.
    Oder du kannst das auch im Code machen - du musst die Fenster dazu natürlich auch als IBOutlets anlegen - die Methoden zum Ein- und Ausblenden heissen genauso (z.B.
    Code:
    [myWindow makeKeyAndOrderFront:nil]; 
    )

    Grüße

    NSObject
     
  4. bennibrother1

    bennibrother1 Zuccalmaglios Renette

    Dabei seit:
    24.09.08
    Beiträge:
    259
    Das selbe kann man übrigens auch mit einem WindowsController (oder so ähnlich) machen.
     
  5. robertmini

    robertmini Fuji

    Dabei seit:
    01.10.09
    Beiträge:
    37
    danke euch allen:) so einigermaßen funktioniert mein programm jetzt schon. weiß jemand noch zufällig, wie man double zahlen in die zwischenablage kopiert? hab in der documentation nichts gefunden, aber wahrscheinlich such ich wieder am falschen ende ;)
     
  6. Poljpocket

    Poljpocket Salvatico di Campascio

    Dabei seit:
    07.01.07
    Beiträge:
    432
    Such in der Doku: 'Pasteboard', dann klickst du 'Pasteboard Programming Guide' an... voilà

    Ich kann dir schon im Voraus sagen, dass du einen double nicht ins pasteboard bringen wirst. Jedoch sehr wohl ein NSNumber mit double-Inhalt. Diesen Umweg musst du machen, wenn du mit Cocoa und der Zwischenablage arbeiten willst.

    Gruss ppocket
     
  7. robertmini

    robertmini Fuji

    Dabei seit:
    01.10.09
    Beiträge:
    37
    danke, ich hab das jetzt einfach mit NSString gemacht, in der Zwischenablage wird ja sowieso nicht zwischen Text und Zahlen unterschieden. Oder hat das irgendwelche Nachteile?
     
  8. Poljpocket

    Poljpocket Salvatico di Campascio

    Dabei seit:
    07.01.07
    Beiträge:
    432
    Das ist leider falsch. Du setzt ja (jetzt auf neue Weise unter 10.6) jedem Pasteboard-Objekt einen bestimmten Typ (String, PDF, Image, Color, …) und darum solltest du auch nur genau entsprechende Objekte darin einfügen. Sonst wirst du in Konflikt mit anderen Applikationen geraten, denn das Pasteboard ist ja global.

    consider your choice. Gruss ppocket
     
  9. robertmini

    robertmini Fuji

    Dabei seit:
    01.10.09
    Beiträge:
    37
    Ich hab noch kein Snow-Leo...und es klappt. Heißt das, unter Snow-Leo funktioniert es nicht? Was muss ich denn ändern?

    Code:
    	NSString* ergebnis = [Ergebnis stringValue];
    	NSPasteboard *pboard = [NSPasteboard generalPasteboard];
    	[pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:self];
    	[pboard setString:ergebnis forType:NSStringPboardType];
     
  10. Poljpocket

    Poljpocket Salvatico di Campascio

    Dabei seit:
    07.01.07
    Beiträge:
    432
    Du musst nichts ändern. Es gibt sozusagen nur unter SL eine neue, übersichtlichere Möglichkeit, das Pasteboard zu benutzen. Das alte System wird aber weiter unterstützt.

    Gruss ppoket
     
  11. robertmini

    robertmini Fuji

    Dabei seit:
    01.10.09
    Beiträge:
    37
    dankeschön :)

    zu dieser neuen möglichkeit: funktioniert mein programm auch noch unter 10.5, wenn ich die benutze, muss ich dann nen switch oder so einbauen?

    Code:
    	double grundseite = [Schenkela doubleValue];
    	double schenkel = [Schenkelb doubleValue];
    	double hohe = [Schenkelh doubleValue];
    	double umfang;
    	double flache;
    	if (schenkel = 0) {
    		umfang = grundseite + sqrt(grundseite * grundseite / 4 + hohe * hohe) * 2;
    		flache = grundseite * hohe / 2;
    	}
    	else {
    		umfang = schenkel * 2 + grundseite;
    		flache = sqrt(schenkel * schenkel - grundseite * grundseite / 4) * grundseite / 2;
    		
    	}
    
    
    	[SchenkelA setDoubleValue:flache];
    	[SchenkelU setDoubleValue:umfang];
    
    ich weiß nicht warum, aber ich kriege hier "nan" als ergebnis für die Fläche (flache). liegt das daran, dass ich bei der if-funktion als bool nicht double = zahl setzten darf?
     
  12. meru

    meru Kronprinz Rudolf von Österreich

    Dabei seit:
    30.09.06
    Beiträge:
    1.893
    Das soll doch nicht etwa ein Vergleichsoperator sein ??

    mfg Meru
     
  13. robertmini

    robertmini Fuji

    Dabei seit:
    01.10.09
    Beiträge:
    37
    doch...wie macht man das denn?
     
  14. meru

    meru Kronprinz Rudolf von Österreich

    Dabei seit:
    30.09.06
    Beiträge:
    1.893
    "=" ist eine Zuweisung das heißt du sagst dort, das "schenkel" den Wert "0"bekommen soll.


    Vergleichen ist "==" vorausgesetzt das die Variable kein Zeiger ist.

    mfg Meru
     
  15. robertmini

    robertmini Fuji

    Dabei seit:
    01.10.09
    Beiträge:
    37
    :oops:...peinlich. danke
     
  16. Bissy

    Bissy Johannes Böttner

    Dabei seit:
    03.02.07
    Beiträge:
    1.159
    hah, das wusste ich ;)
     

Diese Seite empfehlen