Tableview Absturz

  • Tableview Absturz

    Hallo,

    ich bin neu was die Iphone Entwivklung angeht und habe, wie soll es auch anders sein, ein Problemchen.

    Ich habe eine App in der ich eine Tabbar mit drei Buttons habe.

    In der ersten View habe ich eine Tableview mit header und footer,Navigationcontroller eingebaut.

    Der Headerview besitz ein Bild und der Footer ist noch leer.

    Die APP compiliert ohne meckern und läuft auch.

    Wenn ich aber Scrollen möchte, stürzt die APP ab mit

    EXC_BAD_ACCESS

    Wenn ich aber nur 1-2 Zeilen scrolle läuft sie weiter.

    Switche ich vorher durch die Tabs und scrolle dann kommt folgende Fehlermeldung:

    [__NSCFType tableView:cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x5319450
    2011-02-18 10:23:16.101 HartmannApp01[981:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType tableView:cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x5319450'
    *** Call stack at first throw:


    Mein Code sieht so aus:

    PHP-Quellcode

    1. - (void)viewDidLoad
    2. {
    3. self.tableArray = [NSArray arrayWithObjects:@"Eintrag1", @"Eintrag2", @"Eintrag3", nil];
    4. self.tableArray2 = [NSArray arrayWithObjects: @"Eintrag2_1",@"Eintrag2_2", nil];
    5. CGRect newFrame = CGRectMake(0.0, 0.0, self.tableView.bounds.size.width, self.myHeaderView.frame.size.height);
    6. self.myHeaderView.backgroundColor = [UIColor clearColor];
    7. self.myHeaderView.frame = newFrame;
    8. self.tableView.tableHeaderView = self.myHeaderView;
    9. newFrame = CGRectMake(0.0, 0.0, self.tableView.bounds.size.width, self.myFooterView.frame.size.height);
    10. self.myFooterView.backgroundColor = [UIColor clearColor];
    11. self.myFooterView.frame = newFrame;
    12. self.tableView.tableFooterView = self.myFooterView;
    13. }
    14. - (void)viewDidUnload
    15. {
    16. self.myHeaderView = nil;
    17. self.myFooterView = nil;
    18. self.tableArray = nil;
    19. self.tableArray2 = nil;
    20. }
    21. - (void)dealloc
    22. {
    23. [myFooterView release];
    24. [myHeaderView release];
    25. [tableArray release];
    26. [tableArray2 release];
    27. [super dealloc];
    28. }
    29. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    30. {
    31. if (section==0)
    32. {
    33. return [tableArray count];
    34. }
    35. if (section==1)
    36. {
    37. return [tableArray2 count];
    38. }
    39. return 0;
    40. }
    41. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    42. {
    43. return 2;
    44. }
    45. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    46. {
    47. static NSString *kCellID = @"cellID";
    48. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellID];
    49. if (cell == nil)
    50. {
    51. NSLog(@"war NIL");
    52. cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellID] autorelease];
    53. [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
    54. }
    55. if(indexPath.section == 0)
    56. cell.textLabel.text = [tableArray objectAtIndex:indexPath.row];
    57. else
    58. cell.textLabel.text = [tableArray2 objectAtIndex:indexPath.row];
    59. return cell;
    60. }
    61. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    62. }
    63. @end
    Alles anzeigen



    Vielen Dank für eure Hilfe

    Gruss Copy
  • Hallo Plany,

    leider das gleiche. Nur das ich diesmal gar nichts an Fehlermeldung bekomme. Die App wird einfach beendet.

    Gibt es eine Möglichkeit ausser mit NSlog solche Fehler einzugrenzen/zu finden?

    Sprich wenn keine Fehlermeldung ausgeben wird in der Console/Debugger.

    Gruss Copy
  • da gibt es 2 methoden. die ich immer benutze

    einmal breakpoints
    und wenn du ein bad_access hast in xcode neben den kleinen log button, taucht ein dropdown box auf da kannst du sehen wo es genau gecrashed ist. such dir die richtige funktion raus und er sollte zur codezeile springen :)

    EDIT: wann genau crashed die app? wenn du runter scrollst und dann wieder hoch? (zurück zu zellen scrollst die schon gesehen hast?).
    dann stimmt was mit dein datasource nicht
    俺の世界にようこそ

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Plany ()

  • Danke dir.

    Nur scheint mein Xode auch zu spinnen. Es behauptet das das APP schon im debugger läuft, obwohl sie nicht läuft.

    Und bekomme ich gar keine Fehlermeldungen mehr, wenn sie dann mal ausgeführt wird. Wird einfach bendet.

    Mit breakpoints hatte ich auch schon probiert, aber die Funktion wird komplett ausgeführt wie sie soll.

    NSlog Ausgaben usw... alles ok. Es kann rein theoretisch nicht an dieser Funktion liegen.

    Nur beim Scrollen kratzt die ab. Was passiert denn beim scrollen? Kann man das irgendwo tracken/debuggen?


    Mit der Dropdownbox habe ich so noch nicht gesehen/aufgefallen aber schau ich mir mal an.

    Gruss Copy
  • Hm,

    ich habe jetzt weiter rumprobiert und die Zeilen nochmal auskommentiert (71-74) und jetzt stürzt es nicht mehr ab.... komisch

    Jetzt ist aber die Frage was ist an den Zeilen 71-74 falsch?


    Gruss Copy

    EDIT:

    zu früh gefreut stürzt immer noch ab

    Was mich wundert ist, das die APP aber im Hintergrund (Iphone4) bleibt und ich diese dort wieder starten kann. Wenn eine Anwendung abstürtz wird sie doch auch komplett beendet oder?

    Und die Anwendung stürzt ab wenn ich nach unten scrollen. Nach oben gehts. Nur wenn ich mit dem Header etwa soweit runterscrolle wie er hoch ist, flieg ich raus.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von copy ()