NSMutableArrays in NSMutableArray durchlaufen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen


  • Kleines Beispiel !

    Quellcode

    1. NSMutableArray *rootArray;
    2. NSMutableArray *sub1Array;
    3. NSMutableArray *sub2Array;
    4. sub1Array = [[NSMutableArray alloc]initWithObjects:@"Text1", @"Text2", @"Text3", nil];
    5. sub2Array = [[NSMutableArray alloc]initWithObjects:@"Text10", @"Text20", @"Text30", nil];
    6. rootArray = [[NSMutableArray alloc]initWithObjects:sub1Array, sub2Array, nil];
    7. NSString *uuid = @"Text20";
    8. for (NSMutableArray *currArray in rootArray)
    9. {
    10. if ([currArray containsObject:uuid])
    11. {
    12. NSLog(@"Index = %i Inhalt = %@", [currArray indexOfObjectIdenticalTo:uuid], [[currArray objectAtIndex:[currArray indexOfObjectIdenticalTo:uuid]]description]);
    13. }
    14. }
    15. [rootArray release];
    16. [sub1Array release];
    17. [sub2Array release];
    Alles anzeigen




    (Setter und Getter aus Bequemlichkeit weggelassen)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von ramo ()

  • ramo schrieb:

    Lucas de Vil schrieb:

    An der Speicherverwaltung müsst ihr aber beide noch arbeiten...
    Hallo Lucas,
    danke ich lerne gerne, aber kannst du mir auch sagen was falsch ist ? Vielen Dank im voraus !

    'Falsch' ist nicht ganz das richtige Wort.
    Immerhin machst du es ja im Grundsatz richtig: auf jedes +alloc folgt ein -release.

    Ich würde für solche Dinge Convenience Allocators und den Auto Release Pool nutzen.

    C-Quellcode

    1. // Statt
    2. NSMutableArray* array = [[NSMutableArray alloc] initWithObjects: @"Tanz", @"zwo", @"drei", @"vier", nil];
    3. /*
    4. [array ...];
    5. */
    6. [array release];
    7. // lieber
    8. NSMutableArray* array = [NSMutableArray arrayWithObjects: @"Tanz", @"zwo", @"drei", @"vier", nil];
    9. /*
    10. [array ...];
    11. */
    Alles anzeigen

    Denn du wirst die -release's vergessen. ;)


    Ein Tischler, der mir erklärt "Ich brauche vor dem Absägen nicht messen, ich sehe ja am Ende ob es passt.", bekommt von mir keinen Auftrag.
    Speicherfehler sind schwer zu debuggen. Und Mr. Instruments meldet nur Leaks. Es gibt aber noch mehr und wesentlich fiesere Speicherfehler.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MacounFFM () aus folgendem Grund: Löschung auf Wunsch des Nutzers

  • chartus schrieb:

    ramo schrieb:

    Lucas de Vil schrieb:

    An der Speicherverwaltung müsst ihr aber beide noch arbeiten...

    Hallo Lucas,

    danke ich lerne gerne, aber kannst du mir auch sagen was falsch ist ? Vielen Dank im voraus !


    bei deinem beispiel?

    nix... vorausgesetzt du bist ohne GC unterwegs was ich aber annehme ^^
    Danke für die Info, ja ich arbeite ohne GC. Ich wollte damit auch nur eine Möglichkeit für das Durchsuchen der Arrays vorschlagen.
  • Lucas de Vil schrieb:

    ramo schrieb:

    Lucas de Vil schrieb:

    An der Speicherverwaltung müsst ihr aber beide noch arbeiten...
    Hallo Lucas,
    danke ich lerne gerne, aber kannst du mir auch sagen was falsch ist ? Vielen Dank im voraus !
    'Falsch' ist nicht ganz das richtige Wort.
    Immerhin machst du es ja im Grundsatz richtig: auf jedes +alloc folgt ein -release.

    Ich würde für solche Dinge Convenience Allocators und den Auto Release Pool nutzen.

    C-Quellcode

    1. // Statt
    2. NSMutableArray* array = [[NSMutableArray alloc] initWithObjects: @"Tanz", @"zwo", @"drei", @"vier", nil];
    3. /*
    4. [array ...];
    5. */
    6. [array release];
    7. // lieber
    8. NSMutableArray* array = [NSMutableArray arrayWithObjects: @"Tanz", @"zwo", @"drei", @"vier", nil];
    9. /*
    10. [array ...];
    11. */
    Alles anzeigen

    Denn du wirst die -release's vergessen. ;)


    Ein Tischler, der mir erklärt "Ich brauche vor dem Absägen nicht messen, ich sehe ja am Ende ob es passt.", bekommt von mir keinen Auftrag.
    Speicherfehler sind schwer zu debuggen. Und Mr. Instruments meldet nur Leaks. Es gibt aber noch mehr und wesentlich fiesere Speicherfehler.
    Hallo Lucas, natürlich ist Dein Weg der Richtige, ich wollte nur das Durchsuchen der Arrays aufzeigen und habe sie deshalb rein symbolisch mit Werten gefüllt.
    Trotzdem danke, bin für jeden Tip froh um eben zu lernen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MacounFFM () aus folgendem Grund: Löschung auf Wunsch des Nutzers