扫码关注官方订阅号
光阴似箭催人老,日月如移越少年。
看一下这门教学课程,尤其是最后三个视频,告诉了你先根据要填入的数据声明一个结构体,并生成一个可以在结构体的数据didSet时后重新加载配置视图程序(reloadData)的实例。并在最后实现赋值从而调用didSet。
虽然没写过Swift的,但是,请求网络的代码不应该放到cellForRowAtIndexPath方法中,因为它会被调用很多次!应该在viewDidLoad的时候请求网络,网络回调时将解析后的json保存起来,然后调用UITableView的reloadData方法刷新UITableView。在cellForRowAtIndexPath中,使用刚刚保存的解析后的json里的数据来设置每一个cell。
cellForRowAtIndexPath
写过swift,但是我要说的和@isteven 一样,网络请求不应该放到cellForRowAtIndexPath方法中,这并不是一种优雅的做法,虽然你使用Alamofire这个异步网络请求框架,这么做,我们说没有错误,只是不够优雅,优雅的方式是,在viewDidLoad 中触发网络请求,Alamofire请求拿到json数据之后在在数据塞给tableview,最后让tableview刷新。
Alamofire
viewDidLoad
虽然没有写过Swift,但应该在viewDidLoad之类的里面做网络请求,然后请求到得Json存放到一个NSArray内,array内对象是字符串。然后cellForRowAtIndexPath方法里,只要array[indexPath.row]这样取数据。
你放在cellForRowAtIndexPath里面写,然后你知道要请求多少次么,self.abc这个数组里面是空的,Swift的机制应该是要强制初始化,self.abc这个数组要初始化,如果我没有猜错的话,你这个一运行就崩了,因为方法numberOfRowsInSection返回的是0
第一,我强烈建议将这个页面的信息写成一个pac,然后在cell里面直接调用。第二,网络请求最好写在viewDidLoad里面。第三,将网络请求单独写成method进行快速调用。另外,我还建议你使用网络请求的delegate,在请求成功后,在delegate里面写出信息更新的方法。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
看一下这门教学课程,尤其是最后三个视频,告诉了你先根据要填入的数据声明一个结构体,并生成一个可以在结构体的数据didSet时后重新加载配置视图程序(reloadData)的实例。并在最后实现赋值从而调用didSet。
虽然没写过Swift的,但是,请求网络的代码不应该放到
cellForRowAtIndexPath方法中,因为它会被调用很多次!应该在viewDidLoad的时候请求网络,网络回调时将解析后的json保存起来,然后调用UITableView的reloadData方法刷新UITableView。
在cellForRowAtIndexPath中,使用刚刚保存的解析后的json里的数据来设置每一个cell。
写过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里面写出信息更新的方法。