Ich will aber...iOS lernen

Hier noch ein Screenshot (gabs schon mal, aber nicht mit OpenStreetMap. Ausserdem machen wir es jetzt mit Fähnchen.):

attachment.php
 

Anhänge

  • flocati.jpg
    flocati.jpg
    58,9 KB · Aufrufe: 355
  • Gefällt mir
Reaktionen: frauenPower
@Graumagier
Danke für den Tipp, schaue ich mir an.

@Gondomir: sieht guut aus.
Learning bei doing ist wichtig und unverzichtbar.
Ich hatte in irgendeinem meiner Posting auch mal etwas ähnliches geschrieben, wobei die nächsten 14 Tage zumindest meine Hauptarbeit noch Theorie ist.
Je mehr ich lerne, desto mehr verschiebt sich der Theorieteil in die Praxis und dann verfestigt sich Gelerntes und immerhin ist auch mein erstes kleines Projekt fertig und mein Schülerprojekt macht derzeit sehr gute Fortschritte.

Liebe Grüße
Karin
 
Vielleicht kann mir jemand helfen? Ich habe heute morgen ein Lotto-Programm gebastelt und das funktioniert fast einwandfrei. Ich gebe 6 Zahlen in Textfields ein und drücke auf spielen. Jetzt werden 6 Zufallszahlen generiert und diese sollen mit meinen Tipps verglichen werden, um die Anzahl richtige Tipps zu ermitteln. So habe ich das gemacht, aber irgendwie funktioniert das nicht...

Code:
 for (int i=0; i < [tippArray count]; i++) {
        
        for (int j=0; j<[zufallsArray count]; j++) {
            if ([[tippArray objectAtIndex:i] isEqualTo:[zufallsArray objectAtIndex:j]]) {
                counterRichtige++;
            }
        }
        [anzahlRichtige setIntValue:counterRichtige];

Es werden immer null richtige gemeldet, auch wenn ich richtige Tipps habe...
Im tippArray sind meine 6 Tipps, im zufallsArray sind meine 6 Zufallszahlen.
Was mach ich falsch? Ich vermute, die if-Abfrage hat einen Fehler, weil diese Funktion wird nicht aufgerufen, auch wenn sie sollte...
 
Warum "isEqualTo"?

Ich mache solche Vergleiche mit "==".
Außerdem fehlt mir noch ein "break", wenn der Vergleich wahr wurde.

Ich hatte mal so etwas ähnliches geschrieben und da sah mein Code so aus:
Code:
		// Wir sind immer noch in der While-Schleife!
			
			// 2. --> Zufallszahl schon vorhanden <--
			// Jedes Element im Array muss überprüft werden
			for (int x = 0; x < [zufallsArray count]; x++)
			{
				//Vergleichen
				if ([zufallszahl intValue] == [[zufallsArray objectAtIndex:x] intValue])
				{
					// Übereinstimmung gefunden!
					// Diese Zahl gibt es schon!
					istEinmalig = false;
					
					break; // Verlassen der Schleife 
				}
			} // Ende der inneren for-Schleife
		} // Ender der while-Schleife

Vielleicht kannst Du ja damit was anfangen.

Liebe Grüße
Karin
 
Stimmt, break vergessen :) Ich habe auch das isEqualTo in == geändert. Hat aber nichts gebracht. Die if-Abfrage wird nie wahr. Es muss also ein Fehler in der if-Abfrage sein. Nur finde ich keinen... Hier nochmals der angepasste Code:
Code:
    for (int i=0; i < [tippArray count]; i++) {
        
        for (int j=0; j<[zufallsArray count]; j++) {
            if ([tippArray objectAtIndex:i] == [zufallsArray objectAtIndex:j]) {
                counterRichtige++;
                break;
            }
        }
 
Also ich habe drei Richtige:

Code:
    //Array erzeugen mit den Lottozahlen
    int tippArray[6] = {15, 6, 17, 49, 3, 9};
    
    //Array erzeugen mit den Ziehungszahlen
    int zufallsArray[6] = {4, 6, 10, 17, 9, 48};
    
    
    //Und nun der Vergleich, wie viele Richtige es gibt
    int counterRichtige;
    counterRichtige = 0;
    
    
    for (int i = 0; i < 6; i++) {
       // NSLog(@"Wert: %i", tippArray[i]);
        
        for(int j = 0; j < 6; j++) {
            //NSLog(@"Zahl: %i \n", zufallsArray[j]);
            //Hier der Vergleich
            if (tippArray[i] == zufallsArray[j]) {
                counterRichtige++;
                break;
            }
                
        }
        
    }
    
    NSLog(@"Trefferanzahl: %i", counterRichtige);

Liebe Grüße
Karin
 
So funktioniert's:

Code:
for (int i=0; i<[guessedNumbers count]; i++) {
        
        for (int j=0; j<[randomNumbers count]; j++) {
            
            if ([[guessedNumbers objectAtIndex:i] isEqualToString:[randomNumbers objectAtIndex:j]]) {
                
                NSLog(@"Correct number: %@", [guessedNumbers objectAtIndex:j]);
                
                numberOfCorrectGuesses++; 
            }
        }
    }

Vergleich mittels isEqualToString, da mein Array mit Strings gefüllt ist.

break ist übrigens nicht notwendig.
 
Zuletzt bearbeitet:
"break" spart aber Zeit. Nicht unbedingt bei 6 Zahlen.
Habe ich mir zumindest so angewöhnt.

Liebe Grüße
Karin, die Lottozahlen dann tatsächlich als Zahlen und einem einfachen NSArray managen würde.
 
Karin, die Lottozahlen dann tatsächlich als Zahlen und einem einfachen NSArray managen würde.
Noch einfacher wär's sogar den Eingabestring abzugreifen und mittels [myString characterAtIndex:] auf die einzelnen Zeichen zuzugreifen. Dann spare ich mir jegliche Konvertierung, zumindest beim Input.
 
Zuletzt bearbeitet:
Stimmt. Guter Tipp. Danke!

Liebe Grüße
Karin
 
Lotto... (geht auch mit Strings)

Lottozahlen mit Objective-C. Warum das Rad neu erfinden:

Code:
#import <Foundation/Foundation.h>

NSMutableSet *lottoSchein;
NSMutableSet *lottoZiehung;

int main (int argc, const char * argv[])
{
    @autoreleasepool {
        lottoSchein = [[NSMutableSet alloc] initWithObjects:
                       [NSNumber numberWithInt:1],
                       [NSNumber numberWithInt:13],
                       [NSNumber numberWithInt:24],
                       [NSNumber numberWithInt:32],
                       [NSNumber numberWithInt:33],
                       [NSNumber numberWithInt:40],
                       nil
                       ];
        
        lottoZiehung = [[NSMutableSet alloc] initWithObjects:
                        [NSNumber numberWithInt:1],
                        [NSNumber numberWithInt:17],
                        [NSNumber numberWithInt:28],
                        [NSNumber numberWithInt:30],
                        [NSNumber numberWithInt:33],
                        [NSNumber numberWithInt:46],
                        nil
                        ];

        [lottoSchein intersectSet:lottoZiehung];
        
        NSLog(@"%@", lottoSchein);
    }
    return 0;
}
 
  • Gefällt mir
Reaktionen: schedon
:Pah:
Der Code ist elegant und super praktisch.
:Pah:

toll, kannte ich gar nicht!:clap::clap:

Liebe Grüße
Karin
 
So, mal zurück zum Thema.

Aus zensurtechnischen Gründen, gibt es keine Bücherliste mehr.

Liebe Grüße
Karin
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: nio und pdr2002
Erklärung

Ich als Newbie, wie auch ein Profi, habe zu jedem Zeitpunkt das Recht, Kritik an Büchern zu üben. Auch an Büchern, und besonders da, die etwas versprechen, was sie nicht halten.

Ich habe keinen Respekt vor Autoren, verteidige sie nicht und werde mich hüten, Partei für einen Autor zu ergreifen. Fachbücher werden nicht aus altruistischen Motiven geschrieben.
Ich habe 2 Bücher zur Mathematik veröffentlicht und weiß, wie es im Verlagsgeschäft funktioniert.
Dabei war mir die Kritik stets willkommen, die hart in der Sache, auch manchmal im Ton vergriffen, mir zugetragen wurde. Dass hast Du toll gemacht, bringt mich vielleicht persönlich weiter, für ein Fachbuch ist genau diese Kritik kontraproduktiv. Es findet keine Weiterentwicklung statt.
Weichspülermentalität.

Wenn man heutzutage alles nivelliert, nicht mehr Partei ergreift und immer eine Ausrede und Rechtfertigung für Dritte, also für Autoren, für Apple, für Microsoft, für Java etc. sucht, macht man sich nicht zum Gutmenschen, ist nicht ein besserer Mensch, sondern schlicht und ergreifend ein besserer Mitläufer, der jede Chance für Entwicklung hemmt.

Danke an alle hier im Forum, es hat viel Spass gemacht, zensieren lasse ich mich nicht und verbiegen auch nicht.

Ich werde mich nach diesem Posting abmelden und für mich weitermachen.

Liebe Grüße an Euch alle
Karin
 
  • Gefällt mir
Reaktionen: pehre, pdr2002 und cropfaktor
Liebe Karin,

man, dass finde ich jetzt richtig schade. Bei all den verstaubten Gutmenschen hier hast Du richtig frischen Wind ins Forum gebracht.
Ich danke Dir auf jeden Fall für Deine vielen klugen Postings und Deine herzerfrischende Offenheit.
Mail habe ich und wir haben ja noch die Sache mit Deiner App für den Appstore heute zu tun. Da helfe ich Dir auf jeden Fall wie versprochen.

Dir alles Gute
Andreas
 
  • Gefällt mir
Reaktionen: pmau und pdr2002
@Karin: Und du reagierst auf Kritik indem du dich hier abmeldest?
 
@Karin: Und du reagierst auf Kritik indem du dich hier abmeldest?
Wenn ich das richtig verstanden habe, reagiert sie nicht auf Kritik, sondern anscheinend ist ihr verboten worden die Bücherliste zu führen mit ihren Bemerkungen, das ist finde ich schon sehr Schade, zumal ich ihre Kommentare zu den Büchern als sehr sachlich empfand... :(
 
Liebe Karin,

man, dass finde ich jetzt richtig schade. Bei all den verstaubten Gutmenschen hier hast Du richtig frischen Wind ins Forum gebracht.
Ich danke Dir auf jeden Fall für Deine vielen klugen Postings und Deine herzerfrischende Offenheit.

Dem schliesse ich mich mal an. Werde Karin auch noch ne nette Mail schreiben.
Schade, war 'ne nette Gelegenheit sich auszutauschen...

Andere Beiträge möchte ich nicht kommentieren, ich glaube dass ist vergeudete Zeit.
 
  • Gefällt mir
Reaktionen: cropfaktor
"Auch wenn die Mac-Umgebung für Sie neu ist, wird Ihnen dieses Buch als erstes Lektüre empfohlen". Genau dieser arrogante Anspruch wird nicht gehalten.
Da hat Karin nicht Hillegass angegriffen, sondern das Konzept des Buches. Nachfolgende Meinungen bestätigten Karins Einschätzung und Kritik an Büchern ist nicht sachlich. Wir sind nicht in der Häschenschule und schon gar nicht in der Literaturwissenschaft. Reich-Ranickis Verrisse waren ein gutes Beispiel dafür, wie man mit den Mitteln der Rhetorik, hier vornehmlich der Amplificatio, etwas bewirkt.
Und dann kam die Welle der Entrüstung und Anfänger sollen keine Bücher bewerten usw. usf. an Repliken. Und ja, Karin kann darauf so reagieren. Freies Land.

Äh, war nicht Karin Autorin der Bücherliste, da wollen wir doch gleich mal nachsehen: Respekt vor dem Autor, besser machen :hamma:
:rotfl:
 
Zurück
Oben Unten