Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UITableView向上滚动时应用程序崩溃_Iphone_Objective C_Xcode_Ios4 - Fatal编程技术网

Iphone UITableView向上滚动时应用程序崩溃

Iphone UITableView向上滚动时应用程序崩溃,iphone,objective-c,xcode,ios4,Iphone,Objective C,Xcode,Ios4,我想知道为什么我的应用程序在向上滚动UITableView时崩溃 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; NSArray *arrayForNames=[[NSArray alloc]initWithArray:[objCo

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

- (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]处崩溃

我看了教程,在那里我找不到任何不同的实现,它向下滚动非常平滑,但当我向上滚动时,它马上崩溃了,我不知道我哪里做错了

> 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”.
请推荐我


谢谢。

indexPath是否可能指向数组
arrayDuaGroups

尝试使用下面的

NSString *CellIdentifier = [NSString stringWithFormat:@"Cell_%d_%d",indexPath.section,indexPath.row];

EDITED:
您对
NSArray
有问题,您试图从不存在的数组中访问元素

您的
arrayDuaGroups
数组在索引
indexath.section
处没有任何对象

在获取对象之前,请检查
arrayDuaGroups
数组内容和长度


[arrayDuaGroups objectAtIndex:indexPath.section]

尝试对cell=nil进行注释,如果仅对cell=part进行注释,如果我认为是这样的话,它将修复它

 // if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
//    }
编辑: 查看日志后-
问题在于数组作为数据源,当它尝试重建单元格时,在数组(arrayDuaGroups)中找不到任何内容,它是空的,请在类接口中使用retain属性声明数组,并检查se arrayDuaGroups是否为空

这似乎是数组越界异常。您的阵列就是问题所在。您不应该将数组分配到cellForRowAtIndexPath方法中。在viewDidLoad方法中填充数据,然后使用该数组在单元格中显示数据。

请检查tableview控制器的nib文件

视图控制器下应该有一个“表视图”

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

检查“内容”以查看是否分配了“动态原型”或“静态单元”


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

崩溃日志plz和实现单元也在此处提供。.我已经粘贴了它,请查看您可能需要添加
getDuasNamesByGroupName
方法,以及显示如何填充和更改
arrayDuaGroups
的代码。这就是问题所在,但为什么它会在
UITableViewCell*cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier]崩溃为什么在跟踪异常堆栈时,错误似乎出现在0x0254958c-[\uu NSArrayI objectAtIndex:][236 3,而不是在[tableView dequeueReusableCellWithIdentifier:CellIdentifier]中;谢谢Radu我想我有一个逻辑问题导致了这个错误谢谢你的帮助但我认为我在管理组中的行时有逻辑问题根据你的崩溃日志你的问题是由于一个aray越界异常肯定indexPath将指向数组的无效索引的值。这对我的操作没有帮助具有相同问题的tableview。