1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

iPhone addiert 4 statt 1... und TableView-Fragen

Dieses Thema im Forum "iOS-Developer" wurde erstellt von iYassin, 28.09.09.

  1. iYassin

    iYassin Galloway Pepping

    Dabei seit:
    13.04.09
    Beiträge:
    1.365
    Hallo, hab schon wieder ein Problem mit einer iPhone App... ich hab da so eine idee, und dazu ist es nötig, eine Zahl in einem Label immer um 1 zu erhöhen, auf Knopfdruck.
    Also, es gibt da ein Label
    Code:
    IBOutlet UILabel *label1;
    und einen Button mit der
    Code:
    - (IBAction)increase_1;
    Das Label habe ich im Interface Builder mit dem Text "1" gefüllt (ohne die Anführungszeichen :D). Hier mal der Code der IBAction:
    Code:
    - (IBAction)increase_1 {
    	NSString *string_1;
    	string_1 = label1.text;
    	NSLog(string_1);
    	NSLog(@"StringValue before calc");
            int *value_1 = [string_1 intValue];
    	NSLog(@"%i",value_1);
    	NSLog(@"IntValue before calc");
    	int *result;
    	result = value_1 + 1;
    	NSLog(@"%i",result);
    	NSLog(@"IntValue after calc");
    	string_1 = [NSString stringWithFormat:@"%i",result];
    	NSLog(string_1);
    	NSLog(@"StringValue after calc");
    	label1.text = string_1;
    }
    
    Klingt für mich soweit ganz richtig. Aber: Wenn ich den Button einmal drücke, steht danach im Label "5" drin.
    Man sieht hier ja auch die NSLog-Befehle, er wandelt den NSString label1.text auch korrekt in den Integerwert von value_1 um, gibt also bei den ersten beiden NSLogs "1" aus. Nach der Rechnung, also ab "IntValue after calc", gibt er dann immer "5" aus, konvertiert das auch richtig in den NSString und schreibt es ins Label. Nur soll da dann 2 stehen, nicht 5 ;)
    Was mache ich falsch? Wäre sehr sehr nett, wenn mir das jemand zeigen könnte, mein Cocoa-Buch ist noch nicht da :)

    Vielen Dank schonmal, Yassin
     
    #1 iYassin, 28.09.09
    Zuletzt bearbeitet: 28.09.09
  2. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo,

    ich habe keine Ahnung von dem iPhone. Leider konnte ich Deinen Text auch nur schnell überfliegen.
    Aber ich halte so eine Vorgehensweise für nicht ganz richtig.
    Du verwendest das Textfeld zum Sichern eines Wertes - insofern es nicht durch den Anwender manipuliert werden darf (sonst nehme ich die Aussage zurück).

    Warum verwendest Du einen Zeiger für ein Integer?

    Die Methode -intValue liefert Dir einen Integer:

    Code:
    int value_1 = [string_1 intValue];
    ???

    Viele Grüße
     
  3. luke-r2d2

    luke-r2d2 Antonowka

    Dabei seit:
    26.12.08
    Beiträge:
    357
    Mach die Zeiger (*) bei deinen Variablen weg, dann sollte es gehen.
     
    iYassin gefällt das.
  4. iYassin

    iYassin Galloway Pepping

    Dabei seit:
    13.04.09
    Beiträge:
    1.365
    Perfekt - aber den beim NSString musste ich dalassen, sonst kamen acht Fehler. Vielen vielen Dank! :)

    Noch eine Frage:
    Hab das ganze jetzt in eine Navigation-Based Application übernommen. Die startet ja mit einem TableView. Das funktioniert soweit auch ganz gut, auch mit der Navigation in zwei andere Views, aber da ist noch das Problem, dass ich da gerne eine Toolbar unten hätte.
    Die in den "Simulated Controls" einschalten, bringt natürlich nichts, wie ich schon festgestellt habe :D Wenn ich die in den RootViewController reinziehe, geht es nicht, die geht gleich wieder zurück in die Lib, wenn ich die ins MainWindows reinziehe, verschwindet der TableView (bzw. der Platzhalter dafür (Loading View from ...)) im Interface Builder und die Bottom-Bar hängt in der Mitte. Gehen tut es ja, Things kanns ja auch :D
    Wie kann ich die denn da einfügen?

    Und noch eine Frage :)
    Ich nutze als TableView-Typ "Grouped" - die TableView füttere ich über ein NSMutableArray mit bisher zwei Items, die jetzt aneinanderhängen. Wie kann ich da denn eine neue Gruppe erstellen, also dass da ein bisschen Platz ist, so wie z.B. bei Things im Startbildschirm, da sind ja verschiedene Gruppen...

    Vielen Dank schonmal ;)
     
  5. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Wenn Du bei einem Integer unbewusst einen Zeiger setzt und ihn beim String entfernst, dann bist Du für noch gar nichts bereit.
    Zeigt auch, dass Du ein Textfeld als "Speicher" verwendest.

    Bitte erlerne zunächst die Grundlagen. Damit sparst Du Dir selber viel Arbeit und Fehlersucherei.

    Viele Grüße
     
  6. Ares83

    Ares83 Hibernal

    Dabei seit:
    10.10.07
    Beiträge:
    2.011
    du musst da [YYY setToolBarHidden:NO] beim aufrufen des Views machen. Wobei YYY wenn ich es von meiner App noch richtig weiß der Name des UINavigationController ist.
     

Diese Seite empfehlen