App Absturz beim UITableView Blättert
Frage ich mich, warum meine app stürzt ab, wenn ich Blättern meine UITableView bis.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
NSArray *arrayForNames=[[NSArray alloc]initWithArray:[objContentManager getDuasNamesByGroupName:[arrayDuaGroups objectAtIndex:indexPath.section]]];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
//implementation on cell
}
Wenn ich nach oben scrollen Programm stürzt bei UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
Sah ich die tutorials und ich kann nicht finden, jede andere Implementierung, es scrollt nach unten ziemlich glatt, aber wenn ich zurück scrollen bis es kracht sofort, ich nicht herauszufinden, wo m tun falsch
> 2011-06-24 15:07:10.976
> Tasbeeh[503:207] *** Terminating app
> due to uncaught exception
> 'NSRangeException', reason: '***
> -[NSArray objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
> *** Call stack at first throw: ( 0 CoreFoundation
> 0x02553919 __exceptionPreprocess + 185
> 1 libobjc.A.dylib
> 0x023685de objc_exception_throw + 47
> 2 CoreFoundation
> 0x0254958c -[__NSArrayI
> objectAtIndex:] + 236 3 Tasbeeh
> 0x00002922 -[ClassDuaTableCategory
> tableView:cellForRowAtIndexPath:] +
> 553 4 UIKit
> 0x00326a3f
> -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:]
> + 619 5 UIKit 0x0031cad2
> -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] + 75 6 UIKit
> 0x00331337
> -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1348 7 UIKit
> 0x003294bc -[UITableView
> layoutSubviews] + 242 8 QuartzCore
> 0x040e30d5 -[CALayer layoutSublayers]
> + 177 9 QuartzCore 0x040e2e05 CALayerLayoutIfNeeded + 220
> 10 QuartzCore
> 0x040e264c
> _ZN2CA7Context18commit_transactionEPNS_11TransactionE
> + 302 11 QuartzCore 0x040e22b0
> _ZN2CA11Transaction6commitEv + 292 12 QuartzCore
> 0x040e9f5b
> _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv
> + 99 13 CoreFoundation 0x02534d1b
> __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__
> + 27 14 CoreFoundation 0x024c9987 __CFRunLoopDoObservers +
> 295 15 CoreFoundation
> 0x02492c17 __CFRunLoopRun + 1575 16
> CoreFoundation
> 0x02492280 CFRunLoopRunSpecific + 208
> 17 CoreFoundation
> 0x024921a1 CFRunLoopRunInMode + 97 18
> GraphicsServices
> 0x02cb82c8 GSEventRunModal + 217 19
> GraphicsServices
> 0x02cb838d GSEventRun + 115 20 UIKit
> 0x002c4b58 UIApplicationMain + 1160
> 21 Tasbeeh
> 0x00002024 main + 102 22 Tasbeeh
> 0x00001fb5 start + 53 ) terminate
> called after throwing an instance of
> 'NSException' Program received signal:
> “SIGABRT”.
Bitte schlagen Sie mich.
Danke.
- Crash-log plz ..
- crash-log plz und Umsetzung Zelle auch hier zur Verfügung stellen..
- ich hab klebte es bereits bitte haben Sie einen Blick
- Möchten Sie vielleicht
getDuasNamesByGroupName
Methode und der code zeigt, wie Sie eine Füllung, die & VeränderungarrayDuaGroups
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es möglich, dass indexPath geht auf einen Wert verweist auf einen ungültigen index des Arrays
arrayDuaGroups
?
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
warum ist das soBitte überprüfen Sie die nib-Datei des tableview-controller.
Sollte es eine "Tabelle anzeigen", direkt unter Ihrer view-controller.
Klicken Sie hier, um den Attribut-Inspektor der Tabelle anzeigen.
Überprüfen Sie die "Inhalte", um zu sehen, ob es zugeordnet ist, "Dynamische Prototypen" oder "statische Zelle"?
Ändern von "statischen Zelle" zu "Dynamischen Prototypen" könnte in der Lage sein, um Ihr problem zu lösen.
Versuchen, kommentieren die Zelle = nil, wenn, und lassen Sie nur die Zelle = Teil , wenn es das ist, was ich denke, es ist, es wird fix it
BEARBEITEN:
NACH der Anzeige der log -
Das problem mit dem array als Datenquelle, wenn es versucht, den Wiederaufbau der Zelle, die er nicht finden, alles, was in deinem array(arrayDuaGroups), ist es leer , deklarieren Sie das array in der Klasse interface mit den retain-Eigenschaft und überprüfen Sie ob se die arrayDuaGroups leer ist
Scheint es, array out of bounds exception. Dein array ist das problem. Sie sollten nicht zuweisen, array in cellForRowAtIndexPath-Methode. Füllen Sie die Daten in der viewDidLoad-Methode, und verwenden Sie dann das array, für die Anzeige von Daten in der Zelle.
Versuchen mit unten
Haben Sie Problem mit
NSArray
Sie versuchen, Zugriff auf ein element aus dem array, die nicht vorhanden ist,Ihre
arrayDuaGroups
array nicht alle Objekte mit indexindexPath.section
.Überprüfen Sie die
arrayDuaGroups
array-Inhalt und Länge vor dem abrufen des Objekts.[arrayDuaGroups objectAtIndex:indexPath.Abschnitt]