首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当UITableView滚动起来时应用程序崩溃

当UITableView滚动起来时应用程序崩溃
EN

Stack Overflow用户
提问于 2011-06-24 17:59:37
回答 5查看 9.4K关注 0票数 2

我想知道为什么当我向上滚动我的UITableView时我的应用程序崩溃了。

代码语言:javascript
运行
复制
- (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    
}

当我在UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];上滚动程序崩溃时

我看了教程,在那里我找不到任何不同的实现,它向下滚动得相当流畅,但当我向上滚动时,它立即崩溃了,我不知道哪里做错了。

代码语言:javascript
运行
复制
> 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”.

请推荐我。

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-24 18:05:07

是否可能indexPath转到指向数组arrayDuaGroups的无效索引的值?

票数 1
EN

Stack Overflow用户

发布于 2011-12-29 00:56:06

请检查您的tableview控制器的nib文件。

你的视图控制器下面应该有一个“表视图”。

单击以查看表视图的属性检查器。

检查"content“,看看它是被分配了”动态原型“还是”静态单元“?

将“静态单元”更改为“动态原型”可能能够解决您的问题。

票数 3
EN

Stack Overflow用户

发布于 2011-06-24 18:09:49

尝试注释cell = nil if,并且只让cell = part,如果它是我认为的那样,它将修复它

代码语言:javascript
运行
复制
 // if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
//    }

编辑:查看日志后-问题出在作为数据源的数组上,当它尝试重新构建单元格时,它在数组中找不到任何东西( arrayDuaGroups ),它是空的,请使用retain属性在类接口中声明您的数组,并检查arrayDuaGroups是否为空

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6466240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档