swift - 关于IOS 开发中 Json 数据 展示到 TableView 中的思路.
大家讲道理
大家讲道理 2017-04-17 15:45:58
[iOS讨论组]
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(6)
高洛峰

看一下这门教学课程,尤其是最后三个视频,告诉了你先根据要填入的数据声明一个结构体,并生成一个可以在结构体的数据didSet时后重新加载配置视图程序(reloadData)的实例。并在最后实现赋值从而调用didSet。

PHPz

虽然没写过Swift的,但是,请求网络的代码不应该放到cellForRowAtIndexPath方法中,因为它会被调用很多次!
应该在viewDidLoad的时候请求网络,网络回调时将解析后的json保存起来,然后调用UITableView的reloadData方法刷新UITableView。
在cellForRowAtIndexPath中,使用刚刚保存的解析后的json里的数据来设置每一个cell。

ringa_lee

写过swift,但是我要说的和@isteven 一样,网络请求不应该放到cellForRowAtIndexPath方法中,这并不是一种优雅的做法,虽然你使用Alamofire这个异步网络请求框架,这么做,我们说没有错误,只是不够优雅,优雅的方式是,在viewDidLoad 中触发网络请求,Alamofire请求拿到json数据之后在在数据塞给tableview,最后让tableview刷新。

怪我咯

虽然没有写过Swift,但应该在viewDidLoad之类的里面做网络请求,然后请求到得Json存放到一个NSArray内,array内对象是字符串。然后cellForRowAtIndexPath方法里,只要array[indexPath.row]这样取数据。

阿神

你放在cellForRowAtIndexPath里面写,然后你知道要请求多少次么,self.abc这个数组里面是空的,Swift的机制应该是要强制初始化,self.abc这个数组要初始化,如果我没有猜错的话,你这个一运行就崩了,因为方法numberOfRowsInSection返回的是0

怪我咯

第一,我强烈建议将这个页面的信息写成一个pac,然后在cell里面直接调用。第二,网络请求最好写在viewDidLoad里面。第三,将网络请求单独写成method进行快速调用。另外,我还建议你使用网络请求的delegate,在请求成功后,在delegate里面写出信息更新的方法。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号