Ich habe diese große Tabelle, die ohne Fehler funktioniert, auch wenn mir im Vergleich zu komplexeren Zellen, die ich von heruntergeladenen Beispielen geöffnet habe, zu langsam scheint. Das Problem kommt, wenn ich eine Zelle klicken, kam dann zurück, in wenigen Sekunden Scrollen schnell der App auf der Linie abstürzt: charImage.image = [self imageForIndex:ch.charId];
Warum stürzt meine App ab? UITable und Controller
Wenn ich es löschen wird in der nächsten Zeile Absturz: titleLabel.text = ch.title;
Ist jemand damit vertraut? Vielen Dank.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//NSLog(@"add a new cell at index path %@", indexPath);
// Each subview in the cell will be identified by a unique tag.
static NSUInteger const kTitleLabelTag = 2;
static NSUInteger const kCharImageTag = 3;
static NSString *kCellID = @"CellID";
// Configure the cell
// Declare references to the subviews which will display the char data.
UILabel *titleLabel = nil;
UIImageView *charImage = nil;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellID];
if (cell == nil) {
// No reusable cell was available, so we create a new cell and configure its subviews.
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellID] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
[cell setBackgroundColor:[UIColor clearColor]];
//
charImage = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"glyphs/a/1.png"]] autorelease];
charImage.tag = kCharImageTag;
charImage.autoresizingMask = UIViewAutoresizingNone;
[cell.contentView addSubview:charImage];
titleLabel = [[[UILabel alloc] initWithFrame:CGRectMake(60, 10, 215, 20)] autorelease];
titleLabel.tag = kTitleLabelTag;
titleLabel.font = [UIFont systemFontOfSize:16];
titleLabel.textColor = [UIColor whiteColor];
titleLabel.backgroundColor = [UIColor clearColor];
titleLabel.adjustsFontSizeToFitWidth = YES;
[cell.contentView addSubview:titleLabel];
} else {
// A reusable cell was available, so we just need to get a reference to the subviews using their tags.
charImage = (UIImageView *)[cell.contentView viewWithTag:kCharImageTag];
titleLabel = (UILabel *)[cell.contentView viewWithTag:kTitleLabelTag];
}
// Get the specific info for this row.
NSUInteger section = [indexPath section];
NSUInteger row = [indexPath row];
Char *ch = (Char *)[charsList objectAtIndex:row+section*26];
// Set the relevant data for each subview in the cell.
// Set the image in the cell
charImage.image = [self imageForIndex:ch.charId];
[charImage sizeToFit];
int centerX = 30;
int centerY = 23;
CGSize size = charImage.frame.size;
charImage.frame = CGRectMake((int)(centerX - size.width/2),
(int)(centerY - size.height/2),
size.width, size.height);
titleLabel.text = ch.title;
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
InstantInsightAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
NSUInteger section = [indexPath section];
NSUInteger row = [indexPath row];
Char *ch = (Char *)[charsList objectAtIndex:row+26*section];
SqlQueries *db = [SqlQueries alloc];
NSArray *glyphsList = [db readGlyphsFromDatabaseAtId: ch.charId];
NSArray *charDescription = [db readMoreInfoFromDatabaseAtId: ch.charId];
Char *charDetails = [db readInstructionsAndQuotesFromDatabaseAtId: ch.charId];
[db release];
[ch release];
// Navigation logic -- create and push a new view controller
self.glyphsView = [[GlyphsViewController alloc] initWithStyle:UITableViewStyleGrouped];
self.glyphsView.glyphsList = glyphsList;
self.glyphsView.charDetails = charDetails;
self.glyphsView.charDescription = charDescription;
[delegate.navController pushViewController:self.glyphsView animated:YES];
[self.glyphsView release];
self.glyphsView = nil;
}
Hier ist ein detaillierter Fehler: es sagt nichts, aber ich bin sicher, dass ich etwas mit einer Ausnahme gesehen habe
[Sitzung gestartet am 2009-10-05 07:41:25 +0300.] GNU gdb 6.3.50-20050815 (Apple-Version gdb-967) (Di Jul 14 02:11:58 UTC 2009) Urheberrecht 2004 Free Software Foundation, Inc. GDB ist freie Software, die von der GNU General Public License abgedeckt wird, und Sie sind willkommen, es zu ändern und/oder Kopien davon unter bestimmten zu verteilen Bedingungen. Geben Sie "show copying" ein, um die Bedingungen zu sehen. Es besteht keinerlei Garantie für GDB. Geben Sie "show guarantee" für Details ein. Diese GDB wurde konfiguriert als "i386-apple-darwin" .sharedlibrary gelten lasteten Regeln alle Anbringen 96464. (GDB)^C wo
#0 0x95fd5688 in objc_msgSend()
#1 0x00002f60 in -[IndexViewController tableView:cellForRowAtIndexPath:] (self=0xd19610, _cmd=0x319a6b9c, tableView=0x101be00, indexPath=0xd2e890) at /Users/Cristi/Documents/xcode - iPhone/Instant Insight/InstantInsight/Classes/IndexViewController.m:115
#2 0x30944bd0 in -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:]()
#3 0x3093e1fc in -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:]()
#4 0x309501f1 in -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow]()
#5 0x30947715 in -[UITableView layoutSubviews]()
#6 0x00b3dd94 in -[CALayer layoutSublayers]()
#7 0x00b3db55 in CALayerLayoutIfNeeded()
#8 0x00b3d3ae in CA::Context::commit_transaction()
#9 0x00b3d022 in CA::Transaction::commit()
#10 0x00b452e0 in CA::Transaction::observer_callback()
#11 0x30245c32 in __CFRunLoopDoObservers()
#12 0x3024503f in CFRunLoopRunSpecific()
#13 0x30244628 in CFRunLoopRunInMode()
#14 0x32044c31 in GSEventRunModal()
#15 0x32044cf6 in GSEventRun()
#16 0x309021ee in UIApplicationMain()
#17 0x00002718 in main (argc=1, argv=0xbfffee50) at /Users/Cristi/Documents/xcode - iPhone/Instant Insight/InstantInsight/main.m:14
Zeichen * ch = (Zeichen *) [ZeichenListe ObjektAtIndex: Zeile + Abschnitt * 26]; sieht sehr komisch aus. Welche Art von Objekten stellst du in charsList ein? – diederikh
Ich setze Char Objekte. Char enthält nur wenige NSS-Strings, die aus der Datenbank gefüllt werden. Wenn ich diese Werte einfach NSLogle, sind sie in Ordnung, sogar zu der Zeit stürzt ab. –