iOS tableView在cellForRowAtIndexPath中读取数组为空的问题

在viewDidload中实现异步读取数据后,在数组(NSMutableArray)中添加此对象数据,刷新tableView
结果在numberOfRowsInSection可以获取到该数组中的对象,但在cellForRowAtIndexPath中获取到得数组却为空,求大神帮忙看看

- (NSMutableArray *)noticeArray
{
    if (!_noticeArray) {
        _noticeArray = [NSMutableArray array];
    }
    return _noticeArray;
}

下面是同过异步请求得到的数据,并添加进数组,刷新tableView

  NSMutableArray *noticesArray = [NSMutableArray array];
        for (NoticeWithNews *notice in array) {
            NoticeResult *model = [[NoticeResult alloc] init];
            model.noticeWithNews = notice;
            [noticesArray addObject:model];
        }       
         self.noticeArray = noticesArray;        
        [self.tableView reloadData];

至此都还没出现问题,打印的 self.noticeArray也有添加的对象
下面是numberOfRowsInSection,刷新tableView之后打印的self.noticeArray.count有值。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    NSLog(@"%ld",self.noticeArray.count);
    return self.noticeArray.count;
}

但是到cellForRowAtIndexPath中打印的self.noticeArray,就一直为空

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


    static NSString *identifier = @"identifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];
    }
    NSLog(@"%@",self.noticeArray[indexPath.row]);


    return cell;
}

2017-02-02 11:15:31.164 校园新闻[2555:68321] 4
2017-02-02 11:15:31.164 校园新闻[2555:68321] (null)
2017-02-02 11:15:31.165 校园新闻[2555:68321] (null)
2017-02-02 11:15:31.166 校园新闻[2555:68321] (null)
2017-02-02 11:15:31.167 校园新闻[2555:68321] (null)


求大神帮忙解答下,为什么在cellForRowAtIndexPath拿到的数组self.noticeArray会突然变为NULL

2个回答

这里的数组建议你全部使用_array这样调用,不要懒加载。数组你懒加载有什么用。

youshaoduo
ParadiseDuo 回复Rove~: 数组用copy修饰
3 年多之前 回复
qq_27314395
Rove~ 去掉了懒加载
3 年多之前 回复
qq_27314395
Rove~ 把self.noticeArray都改成了_noticeArray,结果在cellForRowAtIndexPath里_noticeArray数组还是空的
3 年多之前 回复

问题解决了,是因为数组引用成了弱指针的缘故,改成strong就好了,一直没注意到用了weak

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
IOS tableview 模型数组NSString突然变成地址

模型数组NSString突然变成地址,求解 ![图片说明](https://img-ask.csdn.net/upload/201706/19/1497885120_694586.jpg) ![图片说明](https://img-ask.csdn.net/upload/201706/19/1497885132_331728.jpg)

iOS 表视图数组越界一般原因及调试方法

-[__NSCFArray objectAtIndex:]: index (0) beyond bounds (0),如果嫌码字麻烦,给个能解决问题的网址也行,小弟在此谢过了

ios tableview cell的自定义左滑按钮

ios tableview cell的自定义左滑按钮是ios8之后才出现,那么在这之前使用什么方法实现的?

ios tableView中,点击单元格,弹出对话框显示单元格的内容。

在ios tableView中,我想实现的功能是点击单元格,弹出对话框显示单元格的内容。但现在的问题是,我点击第一个单元格时,不弹出对话框,但点击第二个单元格时,弹出对话框,但是显示的内容是第一次点击的单元格的内容。是不是哪里设置有问题 ,求各位大神指教。单元格点击响应代码如下。 -(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath { NSString *message = [dataSource_ objectAtIndex:indexPath.row]; UIAlertView *alert = [[UIAlertView alloc]init]; alert.message = message; [alert addButtonWithTitle:@"OK"]; [alert show]; }

IOS tableView 显示不全问题

![数据只显示一部分,滚动条拖不下去,关键是拿到别人机器上就没问题,我在想是不是我哪边设置有问题 图片说明](https://img-ask.csdn.net/upload/201511/26/1448528255_888699.png)

ios的tableview当没有数据的时候,不要这些格子,弄成空白的。

![图片说明](https://img-ask.csdn.net/upload/201511/19/1447926751_605367.jpg) tableview当没有数据的时候,不要这些格子,弄成空白的。最好有代码具体怎么做

ios tableview怎样一上来就让tableview的最上面显示的是第3行!兄弟帮忙看一看

ios tableview怎样一上来就让tableview的最上面显示的是第3行!兄弟帮忙看一看。。。。。。。。。。。。。就是想自由控制tableview第一行内容显示

ios TableView的headView的高度问题

有一个需求,一开始headview的高度是400,当我点击headview中的一个按钮是,要把headview的高度变成800,试了好几种方法都没实现该功能

iOS tableView.tableHeaderView 怎样改变跟随与不跟随cell滑动.

tableView.tableHeaderView=view; 是跟随cell一起滚动的, 我想将cell滚动一定位置关闭headerView跟随滚动.

iOS tableview滚动条一直显示

怎样设置tableview滚动条一直显示? 百度了一下,大多是要重写setalpha方法,可是这个方法一重写,其他图片都会受到影响,显示不出来。 求大神帮忙,急!

急急急!!! iOS tableView显示不全,在线等答案

在视图上创建了一个scrollview,然后在scrollview上又添加了4个tableview,结果在运行的时候出现了显示不全的问题 ![图片说明](https://img-ask.csdn.net/upload/201510/17/1445080325_834843.png)

IOS中TableView两端存在空白

IOS中TableView滚动停留位置,顶端和底端总是与设定的在屏幕显示frame缩短了一小节,![图片](https://img-ask.csdn.net/upload/201510/10/1444484671_966295.png)

iOS tableView.tableHeaderView 怎样改变跟随与不跟随cell滑动.

tableView.tableHeaderView=view; 是跟随cell一起滚动的, 我想将cell滚动一定位置关闭headerView跟随滚动.

iOS 如何调整tableview中滚动条的宽度

最近在修的bug中,需要将tableview中滚动条的宽度加大,可以找不到具体方法。大家有会的不,求帮忙

iOS 设置tableview的下拉刷新问题

显示刷新结果的label总是跟着最上方的那个cell动,请问怎么设置才能让这个label固定在navigationitem后面,等label需要时再出来 ``` - (void)viewDidLoad { [super viewDidLoad]; self.navigationItem.title = @"通知公告"; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAnnouce)]; self.tableView.showsVerticalScrollIndicator = NO; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; self.tableView.backgroundColor = [UIColor colorWithRed:240.0 / 255.0 green:240.0 / 255.0 blue:240.0 / 255.0 alpha:1]; UILabel *tipLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0, SCREEN_WIDTH, 40)]; tipLabel.textAlignment = NSTextAlignmentCenter; tipLabel.backgroundColor = RGBCOLOR(250.0f, 250.0f, 250.0f); tipLabel.textColor = MAINCOLOR; tipLabel.font = [UIFont systemFontOfSize:15]; [self.tableView addSubview:tipLabel]; self.tipLabel = tipLabel; UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; self.refreshControl = refreshControl; [refreshControl addTarget:self action:@selector(reloadData:) forControlEvents:UIControlEventValueChanged]; refreshControl.tintColor = MAINCOLOR; [refreshControl beginRefreshing]; [self reloadData:refreshControl]; } ``` 代码是tableview视图的viewdidload方法,这个设置刷新的label总是会跟着cell...

ios tableview怎么改变所有的cell状态。急,在线等。谢谢大牛们了。

![图片说明](https://img-ask.csdn.net/upload/201509/17/1442477511_285289.png) 比如上面的图,点击全选,然后改变所以cell里面的状态。

IOS tableView 基础问题

想请教一下 tableView 除了 reloaData 。 还可以用什么方法会让他重新走一遍 numberOfSectionsInTableView,来增加Section 并且不把其他的 cell 的数据清空。

IOS:tableView的分区头重用问题

我要的效果![图片说明](https://img-ask.csdn.net/upload/201608/25/1472108267_571647.png) 点击编辑后 所有显示的sectionHeaderView 都向右侧偏移,但是现在偏移后,上下滚动,会重用![图片说明](https://img-ask.csdn.net/upload/201608/25/1472108470_133265.png)本来该向右偏移60的,滚动后又回默认位置

ios6 tableview 分组模式

问有木有办法可以将ios6 tableview 分组模式的cell修成直角 最好是类似ios7 tableview分组模式的样子

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

定量遥感中文版 梁顺林著 范闻捷译

这是梁顺林的定量遥感的中文版,由范闻捷等翻译的,是电子版PDF,解决了大家看英文费时费事的问题,希望大家下载看看,一定会有帮助的

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

sql语句 异常 Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your

在我们开发的工程中,有时候会报 [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ------ 这种异常 不用多想,肯定是我们的sql语句出现问题,下面...

浪潮集团 往年的软件类 笔试题 比较详细的哦

浪潮集团 往年的软件类 笔试题 比较详细的哦

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

I2c串口通信实现加速度传感器和FPGA的交流

此代码能实现加速度传感器与FPGA之间的交流,从而测出运动物体的加速度。

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

eclipseme 1.7.9

eclipse 出了新的eclipseme插件,官方有下载,但特慢,我都下了大半天(可能自己网速差)。有急需要的朋友可以下哦。。。

Spring Boot -01- 快速入门篇(图文教程)

Spring Boot -01- 快速入门篇 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到【慕课网】手机 app,去找【Spring Boot 2.0 深度实践】的课程,令人开心的是,课程完全免费! 什么是 Spring Boot? Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot...

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

最简单的倍频verilog程序(Quartus II)

一个工程文件 几段简单的代码 一个输入一个输出(50Mhz倍频到100Mhz)

计算机组成原理实验教程

西北工业大学计算机组成原理实验课唐都仪器实验帮助,同实验指导书。分为运算器,存储器,控制器,模型计算机,输入输出系统5个章节

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

基于RSA通信密钥分发的加密通信

基于RSA通信密钥分发的加密通信,采用pycrypto中的RSA、AES模块实现

不同变质程度煤尘爆炸残留气体特征研究

为分析不同变质程度煤尘爆炸残留气体成分的特征规律,利用水平管道煤尘爆炸实验装置进行了贫瘦煤、肥煤、气煤、长焰煤4种不同变质程度的煤尘爆炸实验,研究了不同变质程度煤尘爆炸后气体残留物含量的差异,并对气体

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;  2.常用的黑盒测试用例设计方法及示例演示;  3 常用白盒测试用例设计方法及示例演示;  4.自动化测试优缺点、使用范围及示例‘;  5.测试经验谈。

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

jsp+servlet入门项目实例

jsp+servlet实现班级信息管理项目

winfrom中嵌套html,跟html的交互

winfrom中嵌套html,跟html的交互,源码就在里面一看就懂,很简单

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

python实现数字水印添加与提取及鲁棒性测试(GUI,基于DCT,含测试图片)

由python写的GUI,可以实现数字水印的添加与提取,提取是根据添加系数的相关性,实现了盲提取。含有两种攻击测试方法(高斯低通滤波、高斯白噪声)。基于python2.7,watermark.py为主

Xshell6完美破解版,亲测可用

Xshell6破解版,亲测可用,分享给大家。直接解压即可使用

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection<? ...

相关热词 c#对文件改写权限 c#中tostring c#支付宝回掉 c#转换成数字 c#判断除法是否有模 c# 横向chart c#控件选择多个 c#报表如何锁定表头 c#分级显示数据 c# 不区分大小写替换
立即提问
相关内容推荐