table设置可编辑删除cell时,删除最后一条数据源不同机型闪退的问题

项目中遇到一个问题,那就是在iPhone5s上面,删除表的最后一条数据源会闪退,别的机型上是没问题的

#pragma mark -  设置指定哪些cell可以被编辑

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{

if (self.dataSource.count > 0) {

MyMessageModel * model = self.dataSource[indexPath.row];

if ([model.read_type isEqualToString:@"0"]) {

return NO;

}else{

return YES;

}

}

return  NO;

}

现在问题就是,每次删除数据源的最后一条消息时候,就是崩溃到这个 设置可编辑方法里的

MyMessageModel * model = self.dataSource[indexPath.row];

每次reson 都是 数据越界,哪为什么别的机型就不会csah呢?

最终是添加了一个数据的分类,解决了在 iPhone5S 机删除闪退的问题,来贴一下代码,

分类  .h ------------

#import

@interface NSArray (SYFExtension)

-(id)objectAtIndexCheck:(NSInteger)index;

@end

分类  .m ------------

#import "NSArray+SYFExtension.h"

@implementation NSArray (SYFExtension)

-(id)objectAtIndexCheck:(NSInteger)index{

if (index >= [self count]) {

return nil;

}

id value = [self objectAtIndex:index];

if (value == [NSNull null]) {

return nil;

}

return value;

}

@end

在控制器设置可编辑状态的方法里面,把原来的

MyMessageModel * model = self.dataSource[indexPath.row];

替换成

//objectAtIndexCheck 类别新增方法

MyMessageModel * model  = [self.dataSource objectAtIndexCheck:indexPath.row];

最终测试,不再会cash.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容