2 qq 32378247 qq_32378247 于 2016.01.23 14:50 提问

关于ios开发 tableview问题
ios

ios tableview

  • (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return self.message.count; //程序崩溃。message是通过懒加载的数组
    // exc_bad_accesscodeexc_i386_gpflt }

怎么解决这个问题

4个回答

oyljerry
oyljerry   Ds   Rxr 2016.01.23 15:00

起码要判断一下message是否为nil。否则会crash

baidu_33830449
baidu_33830449   2016.01.23 15:12

楼上说得对,你少了个message

leilba
leilba   Rxr 2016.01.25 11:18

要先判断message是否为nil,为nil的话返回0,也就是 if(message == nil)return 0;else return [self.message count];
由于网络速度一般很慢,所以第一次加载的话一般message都还没有获取到,所以执行这一步的话message一般会为nil。等到网络获取到数据之后,对message进行赋值和数据装载,再重新刷新一下,调用 [uitableview reload]。
还有一个方案是一开始就先对message进行初始化,在viewdidload的靠前的地方加入:self.message = [[UIMutableArray alloc] init]; 这样message就不会为nil了

Margaret_MO
Margaret_MO   2016.03.03 14:57

你的问题应该不是出在这个数组上,我也像你这么写了,写了懒加载,并没有报错。
你好好看看你的报错信息吧,应该不是里的问题。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ios 关于tableview的复用问题,避免假复用
自从开始做ios开发,自己开发了很多客户端,也看到很多别人写的程序,发现很多人在做程序的时候走入了很多误区,比如tableview的复用,tableview的复用是为了解决大量数据的内存管理问题,优化软件的运行质量,但是因为问题只会影响到运行的质量问题,对于实现功能没有影响,因此这类问题在开发的时候很难被察觉,因此想提高软件质量的童鞋可以试试了解一下这个问题的优化方法。希望对大家有所帮助 了解软
iOS之Tableview重用原理、重用出现的错乱三种解决方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {     static NSString *CellIdentifier = @"Cell";     // UITableViewCell *cell = [tableV
iOS开发之UI学习-UITableView的复用机制
通过代码的形式让你快速理解表视图的单元格重用问题既复用机制。 在表视图显示的时候,会创建 (视图中可看的单元格个数+1)个单元格,一旦单元格因为滑动的而消失在我们的视野中的时候,消失的单元格就会进入缓存池(或叫复用池),当有新的单元格需要显示的时候,会先从缓存池中取可用的单元格,获取成功则使用获取到的单元格,获取失败则重新创建心的单元格,这就是整个的复用机制。
iOS 开发 - tableView内嵌scrollView时,在plus上滑动scrollView时和tableView有冲突
如题,tableView内嵌scrollView时,在plus上滑动scrollView时,scrollView左右滑动正常,当我触摸范围在scrollView上去滑动tableView时,tableView是不响应的,甚至点击cell都无效。 查到很多办法都说要重写如下方法:-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecogn
IOS开发 tableview中cell的用法
IOS开发 tableview中cell的用法 值得拥有
TableView开发
iOS开发入门tableView,运行环境xcode5,iOS7.
ios开发 3d tableview
ios开发 3d tableview效果不错哦
iOS之TableViewCell重用机制避免重复显示问题
一般习惯上我们都会按照下面的方法来写 、当超过tableView显示的范围的时候 、后面显示的内容将会和前面重复- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"
iOS开发之DataSource神奇魔法,优雅的写法让你轻松驾驭TableView
项目地址:https://github.com/cocbin/CBTableViewDataSource 简介 最近在重构之前写的代码的时候,发现基本每个viewController里面都有一段又臭又长的代码用于定义tableView的dataSource和delegate,于是我在想,有没有更优雅的方式来书写dataSource,于是乎就产生了CBTableViewDataSource。
iOS tableview做多选避免复用导致的显示错乱问题
需求:用tableview做选择框,选中打勾,可单选、多选、全选、全不选等。需要在一堆复用的自定义cell中 点击一个cell 在当前cell显示选中按钮如果单纯的在cell里添加Btn再在didselect方法中去修改按钮状态,那么就会出现别的cell中也出现了一个选中的按钮.这是由于cell的复用导致的为了避免这个情况,这里的思路就是,1.在cell中添加按钮,并且为按钮添加代理方法返回控制器...