- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一张大表,它可以正常工作,即使与我从下载的示例中打开的更复杂的单元格相比,我觉得它太慢了。当我单击一个单元格然后返回时出现问题,在快速滚动的几秒钟内应用程序在该行崩溃:charImage.image = [self imageForIndex:ch.charId];
如果我删除它会在下一行崩溃:titleLabel.text = ch.title;
有人知道吗?谢谢。
- (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;
这是一个详细的错误:它什么也没说,但我确定我看到了一些异常
[ session 开始于 2009-10-05 07:41:25 +0300。]GNU gdb 6.3.50-20050815(Apple 版本 gdb-967)(UTC 2009 年 7 月 14 日星期二 02:11:58)版权所有 2004 Free Software Foundation, Inc.GDB 是免费软件,受 GNU 通用公共(public)许可证保护,您是欢迎在特定条件下更改它和/或分发它的副本。键入“show copying”以查看条件。GDB 绝对没有任何保证。键入“显示保修”以获取详细信息。此 GDB 配置为“i386-apple-darwin”。sharedlibrary apply-load-rules all附加到进程 96464。(gdb) ^C在哪里
#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
最佳答案
什么样的“崩溃”? EXC_BAD_ACCESS
(取消引用未指向有效位置的指针)?或者某种objc_exception_throw
?
假设您的意思是 EXC_BAD_ACCESS
...
这是因为从 [charsList objectAtIndex:row+section*26]
返回的“ch”值不是有效对象。
具体原因您需要自己去发现,但最可能的原因是您释放该对象的次数过多。也有可能对象在插入到 NSArray 时不是有效的 Objective-C 对象。
有时它有助于设置 NSZombieEnabled(command-option-x,转到 Arguments 选项卡并将 name=NSZombieEnabled 和 value=1 添加到环境变量)因为如果您尝试使用已释放的对象,这将立即抛出异常.
--
不相关的风格点:您正在分配 SqlQueries 但没有初始化它。如果你alloc
,总是,总是init
。即 [[SqlQueries alloc] init]
。如果你不关心 init
因为你没有任何实例变量,那么你不应该有一个 alloc
无论如何,你的方法应该是类方法。
关于iphone - 为什么我的应用程序崩溃了? UITable 和 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1513505/
我有两个 UITable,一个在另一个之上。用户可以点击并将元素从顶部表格拖动到底部。当元素被拖动到底部表格上时,它就会消失。 当表格并排时,不会出现此问题。 线索/症状可能是;当您滚动顶部表格时,如
谁能指导我如何做这样的事情: 我设法完成了第一个和最后一个屏幕,我需要在它们之间插入另一个屏幕。 有什么教程可以学习吗? 非常感谢:) 最佳答案 使用 uitableview 创建一个 uinavig
我有一个链接到我的 viewController 的 UITable,它具有 DataSource 和 Delegate 的扩展。然而,当我查看 View Controller 上的连接时,它们没有链
我的应用程序包含 UITableView 并显示来自 SQLite 的数据。我想在用户滚动 tableview 时始终显示 UITableView 的标题。如何实现它? 最佳答案 您必须将 View
我的应用程序因内存问题(使用太多内存)而崩溃。当我从 TableView 打开足够多的对象时,就会发生这种情况。我已经在互联网上搜索了这个问题,我可以看出这可能是因为内存从未被释放过。但我该如何释放它
我想知道如何使 UITable 具有列。或者,是否有更好的方法来创建一个看起来像网格的实际表格。我想要 3 列。我该怎么做? 最佳答案 UITableView 不支持多列。但是,如果您创建自己的自定义
我创建了一个 matfile,其中存储了不断被用户行为覆盖的数据。这发生在函数“test()”中。 n=1 while n < 5 myVal = double(Test704(1, 780,
我一直在搜索并尝试让我的 UITableView 节标题允许多行文本,但我无法让它工作。这是它显示的内容: 但文字是:埃弗顿足球俱乐部的主场 Jersey 是什么颜色? 我目前正在尝试的是: func
我正在构建一个简单的 iOS 应用程序,它有两个 UITableViewController,我用它来创建一个用于日期导航的水平表 (ScrollingDateViewController) 和第二个
我有一个简单的 UITable 实现和一个名为 fruits 的数组。摘自this例子。唯一的区别是我为 UITable 使用 UIViewController 而不是 UITableViewCont
我有一个名为 gatherData 的函数,它遍历 Firebase 数据库中的目录和数据。因为它使用异步函数,所以返回数据并不是一个明显的选择。我使用以前问题的其他解决方案来确定我需要一个回调系统。
我有一个 UITableViewController,它有两个部分。第一部分显示一个带有居中文本的单元格,内容为添加新幻灯片。第二部分显示当前幻灯片。 当用户点击添加新幻灯片单元格时,新的UITabl
如何在 UITable 中制作用于移动行的自定义按钮? 我希望它是透明的。 (而不是这个:) 另一件事是,当单元格移动时,它有阴影。是否可以删除它? 最佳答案 试试这个... 您必须通过继承 UITa
我使用以下代码将图像添加到 UITableview。我想不通的是如何让背景图像随表格滚动(不是每个单元格中的图像,而是 UITable 后面的大图像)。我需要背景图像可滚动并与 UITable 滚动同
我想更改 UITableView 部分标题的颜色。 最佳答案 使用以下代码作为您的答案 -(UIView *)tableView:(UITableView *)tableView viewForHea
我正在尝试在 UITableViewController 内的每个 UITable 单元格中创建一个按钮。我在我的 Storyboard中的单元格中放置了一个按钮,但是当我尝试在我的 swift 文件
出于性能原因,我在 Matlab 中使用旧版本的 uitable。我正在尝试更改表格标题的单元格边框颜色。目前,两个列标题单元格彼此无法区分。我尝试了以下方法: 自定义列渲染器但仍然无法更改表格标题边
我已经实现了这个滑动删除但是作为一个清除按钮将 uitableviewcells 文本标签重置为空...当这个方法被执行时它完美地工作..但是当用户在滑动清除后触摸同一个单元格时没有任何反应... 然
我有一个带有展开/折叠部分的表格 View 的应用程序,遵循 Apple 的 Table View Animations & Gestures sample app 中的示例。 .当一个项目被添加到一
我有一张 table ,我正在为其做一些特殊的加载。用户开始滚动到底部。当用户滚动到顶部附近时,我通过 ScrollView 委托(delegate)方法检测到这一点,我快速加载一些额外的内容,并填充
我是一名优秀的程序员,十分优秀!