Hallo Welt !
Ich bin neu in ObjectiveC und habe jetzt auch "Objective C und Cocoa" Buch durch. Leider blieb mir aber eine einfache Frage zu den Arrays unerklärt.
Deshalb dachte ich ich frage mal die Spezialisten Konkret sind es zwei Fragen:
1) Eigentlich will ich ein gaaanz einfaches Array namens units aus Klassenobjekten auf machen. Nichts mit Automatischen Verwaltungsfunktionen, in etwa einfach
etwas in dieser Art:
units unitArray[10000];
unitArray[243].paramter1=43;
Blanko erzeugen, fixe Anzahl an Objekten, Zugriff dann direkt. So geht das aber leider nicht, zumindest habe ich nicht die Korrekte Codeimplementierung heraus
gefunden. Meine Frage: Geht das doch irgendwie, so wie ich es aus Visual C++ kenne?
2) Als Notlösung habe ich jetzt die NSMutableArray Variante ausprobiert. Das geht, aber was ich komisch finde ist, das ich immer erst ein einzelnes Objekt
haben muss das ich dann in den Array quetsche. Und wenn ich Zugreifen will geht das auch wieder nicht direkt sondern ich muss [unitArray objectAtIndex:x]
mir immer ein Objekt herausziehen auf das ich dann wieder zugreifen kann. Das wäre mir jetzt so von mir aus auch recht über den zwischen Schritt,
aber wie sieht es mit der Performance aus? Da wird nicht ein komplettes Objekt mit allen Variablen aus dem Pott gezogen? So wie ich es sehe wird da
nur der Zeiger auf das Objekt gezogen. Das wäre dann wegen der Performance vertretbar, aber direkter geht es nicht oder?
Hier der Quellcode:
Alles anzeigen
Grüße und schon mal vielen Dank für jedwedes Feedback,
Rayjunx
Ich bin neu in ObjectiveC und habe jetzt auch "Objective C und Cocoa" Buch durch. Leider blieb mir aber eine einfache Frage zu den Arrays unerklärt.
Deshalb dachte ich ich frage mal die Spezialisten Konkret sind es zwei Fragen:
1) Eigentlich will ich ein gaaanz einfaches Array namens units aus Klassenobjekten auf machen. Nichts mit Automatischen Verwaltungsfunktionen, in etwa einfach
etwas in dieser Art:
units unitArray[10000];
unitArray[243].paramter1=43;
Blanko erzeugen, fixe Anzahl an Objekten, Zugriff dann direkt. So geht das aber leider nicht, zumindest habe ich nicht die Korrekte Codeimplementierung heraus
gefunden. Meine Frage: Geht das doch irgendwie, so wie ich es aus Visual C++ kenne?
2) Als Notlösung habe ich jetzt die NSMutableArray Variante ausprobiert. Das geht, aber was ich komisch finde ist, das ich immer erst ein einzelnes Objekt
haben muss das ich dann in den Array quetsche. Und wenn ich Zugreifen will geht das auch wieder nicht direkt sondern ich muss [unitArray objectAtIndex:x]
mir immer ein Objekt herausziehen auf das ich dann wieder zugreifen kann. Das wäre mir jetzt so von mir aus auch recht über den zwischen Schritt,
aber wie sieht es mit der Performance aus? Da wird nicht ein komplettes Objekt mit allen Variablen aus dem Pott gezogen? So wie ich es sehe wird da
nur der Zeiger auf das Objekt gezogen. Das wäre dann wegen der Performance vertretbar, aber direkter geht es nicht oder?
Hier der Quellcode:
Quellcode
- NSMutableArray *unitArray= [[NSMutableArray alloc] initWithCapacity:200]; // Anzahl ist nur geschätzt, ergibt kein Limit!
- Units *aUnit = [Units new]; // Einzelnes Objekt anlegen
- aUnit.age=99;
- [unitArray addObject:aUnit]; // Einzelnes Objekt in Objekt Array packen
- for( int i = 0; i < 10000; i++) // viele Objekte in den Array füllen
- {
- aUnit = [Units new];
- aUnit.age=99;
- [aUnit setAge:99]; // andere Schreibart
- [aUnit ageUp]; // Klassen methoden starten
- [unitArray addObject:aUnit];
- }
- // Objekt an Indexposition x holen und über IndexUnit zugänglich machen
- Units *indexUnit = [unitArray objectAtIndex:33];
- [indexUnit setAge:4];
- aUnit.age=99;
Grüße und schon mal vielen Dank für jedwedes Feedback,
Rayjunx
Just a bloggingFreak raysspieleschmiede.blogspot.de freakwave-games.blogspot.de
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von RayJunx ()