NSMutableArray Count gibt immer 1 zurück

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

  • NSMutableArray Count gibt immer 1 zurück

    Hallo Leute,

    ich habe ein kleines Problem. Ich habe ein NSMutableArray und füge dem Objekte hinzu, die aus einer XML geparst werden.
    Ich möchte gerne die Anzahl dieser Objekte mit count ermitteln. Allerdings bekomme ich immer 1 zurück. Ich bin schon eine Weile dran und finde meinen Fehler nicht.

    Quellcode

    1. NSMutableArray *test = [[NSMutableArray alloc] initWithCapacity:100];//Testhalber initWithCapacity:100
    2. [test addObject:[TBXML textForElement:xmlSetId]];
    3. NSLog(@"%@", test);
    4. NSLog(@"%i", [test count]);


    Hier mein Log:

    Quellcode

    1. 2011-09-13 11:35:14.688 TestProjekt[10876:207] ( 2027)
    2. 2011-09-13 11:35:14.688 TestProjekt[10876:207] 1
    3. 2011-09-13 11:35:14.703 TestProjekt[10876:207] ( 42)
    4. 2011-09-13 11:35:14.703 TestProjekt[10876:207] 1
    5. 2011-09-13 11:35:14.709 TestProjekt[10876:207] ( 87)
    6. 2011-09-13 11:35:14.710 TestProjekt[10876:207] 1
    7. 2011-09-13 11:35:14.716 TestProjekt[10876:207] ( 104)
    8. 2011-09-13 11:35:14.718 TestProjekt[10876:207] 1
    9. 2011-09-13 11:35:14.725 TestProjekt[10876:207] ( 28)
    10. 2011-09-13 11:35:14.726 TestProjekt[10876:207] 1
    11. 2011-09-13 11:35:14.732 TestProjekt[10876:207] ( 30)
    12. 2011-09-13 11:35:14.733 TestProjekt[10876:207] 1
    13. 2011-09-13 11:35:14.740 TestProjekt[10876:207] ( 35)
    14. 2011-09-13 11:35:14.740 TestProjekt[10876:207] 1
    15. 2011-09-13 11:35:14.748 TestProjekt[10876:207] ( 55)
    16. 2011-09-13 11:35:14.749 TestProjekt[10876:207] 1
    Alles anzeigen



    Danke für jegliche Tips,
    brush51
  • ja und ? Du fügst troztdem nur 1 Object zu deinem Array. Wenn Du 8 Array erzeugst und da jeweils 1 Object reinlegst dann hast du 8 Array mit 1 Object aber nicht 1 Array mit 8 Objekten....

    Ich rate immer noch zu einem Buch...

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Jetzt hab ich das so angepasst:

    Quellcode

    1. NSArray *test1 = [[NSArray alloc] init];//initWithObjects:[TBXML textForElement:xmlSetId], nil];
    2. NSMutableArray *test = [[NSMutableArray alloc] initWithArray:test1];
    3. for (int i =0; i<7; i++) {
    4. [test addObject:[TBXML textForElement:xmlSetId]];
    5. NSLog(@"%@", test);
    6. NSLog(@"%i", [test count]);
    7. }
    Alles anzeigen


    Jetzt sieht mein Log so aus:

    Quellcode

    1. [...]
    2. 2011-09-13 12:51:29.800 TestProjekt[11934:207] (
    3. 55,
    4. 55,
    5. 55,
    6. 55,
    7. 55,
    8. 55,
    9. 55
    10. )
    11. 2011-09-13 12:51:29.800 TestProjekt[11934:207] 7
    Alles anzeigen

    und das mit allen anderen objekten auch, alle mehrmals drin.
    Ich kann das noch nicht so ganz nachvollziehen das Ganze.
  • Sieht doch gut aus. Das ist jetzt die Ausgabe nach dem 7ten Schleifendurchlauf. Ein Array mit 7 Elementen! :)

    Jetzt musst Du prüfen, was textForElement liefern soll. Was für einen Datentyp gibt textForElement zurück?

    Die Initialisierung von test mit test1 kannst Du dir auch sparen, da test1 eh leer ist.
    goto fail;
  • MarkusM schrieb:

    Die Frage ist, was textForElement liefert. Evtl. Tokens? Dann kommt bei jedem Aufruf ein anderer Wert.

    Diese Frage ist sinnlos. Es wird immer derselbe Text abgeholt, da sich das Element selbst ja niemals ändert.
    «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
  • xmlSetId ist die ID aus der XML datei. textForElement liefert NSString zurück, ist von TBXML.
    Ich hab das nun mit objectAtIndex:i versucht aber da auch das gleiche spiel.

    Ich habe mir das im buch schon angeguckt, dennoch finde ich net, was ich verkehrt mache oder was ich vergessen habe.
  • Der Wert ändert sich ja.
    Die Ausgabe sieht so aus, das davor war nur der letzte Ausschnitt:

    Quellcode

    1. 2011-09-13 13:23:08.744 TestProjekt[12294:207] (
    2. 2027,
    3. 2027
    4. )
    5. 2011-09-13 13:23:08.744 TestProjekt[12294:207] 2
    6. 2011-09-13 13:23:08.745 TestProjekt[12294:207] (
    7. 2027,
    8. 2027,
    9. 2027
    10. )
    11. 2011-09-13 13:23:08.745 TestProjekt[12294:207] 3
    12. 2011-09-13 13:23:08.746 TestProjekt[12294:207] (
    13. 2027,
    14. 2027,
    15. 2027,
    16. 2027
    17. )
    18. 2011-09-13 13:23:08.746 TestProjekt[12294:207] 4
    19. 2011-09-13 13:23:08.747 TestProjekt[12294:207] (
    20. 2027,
    21. 2027,
    22. 2027,
    23. 2027,
    24. 2027
    25. )
    26. 2011-09-13 13:23:08.748 TestProjekt[12294:207] 5
    27. 2011-09-13 13:23:08.748 TestProjekt[12294:207] (
    28. 2027,
    29. 2027,
    30. 2027,
    31. 2027,
    32. 2027,
    33. 2027
    34. )
    35. 2011-09-13 13:23:08.749 TestProjekt[12294:207] 6
    36. 2011-09-13 13:23:08.750 TestProjekt[12294:207] (
    37. 2027,
    38. 2027,
    39. 2027,
    40. 2027,
    41. 2027,
    42. 2027,
    43. 2027
    44. )
    45. 2011-09-13 13:23:08.750 TestProjekt[12294:207] 7
    46. 2011-09-13 13:23:08.751 TestProjekt[12294:207] (
    47. 2027,
    48. 2027,
    49. 2027,
    50. 2027,
    51. 2027,
    52. 2027,
    53. 2027,
    54. 2027
    55. )
    56. 2011-09-13 13:23:08.752 TestProjekt[12294:207] 8
    57. 2011-09-13 13:23:08.773 TestProjekt[12294:207] (
    58. 42,
    59. 42
    60. )
    61. 2011-09-13 13:23:08.775 TestProjekt[12294:207] 2
    62. 2011-09-13 13:23:08.775 TestProjekt[12294:207] (
    63. 42,
    64. 42,
    65. 42
    66. )
    67. 2011-09-13 13:23:08.776 TestProjekt[12294:207] 3
    68. 2011-09-13 13:23:08.776 TestProjekt[12294:207] (
    69. 42,
    70. 42,
    71. 42,
    72. 42
    73. )[...]
    Alles anzeigen
  • Aufgrund des Umfangreichen codes, den ich habe, hatte ich die Übersicht verloren und überhaupt nicht gemerkt, das ich den hier im Thread gezeigten code in einer do while schleife hatte.

    Ich hab nun die initialisierungen außerhalb der do while schleife gelegt und funktioniert jetzt sauber. Wird auch richtig gezählt.
    Meiiine Güte wie Anstrengend. Die Mittagspause hat echt gut getan, sonst wäre ich heute überhaupt nicht drauf gekommen.

    Herzlichen Dank nochmal für die Hilfestellungen!