佚名通过本文主要向大家介绍了storyboard,storyboard quick,storyboard是什么意思,toon boom storyboard,storyboard pro等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 使用storyboard建立tableview运行时代码运行了三次是什么情况?
描述:
解决方案1:
描述:
import UIKit
class TaskListController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
print("Test")
return 0
}
}
解决方案1:
iOS 10.1 测试运行了 5 次……
感觉没必要纠结在此,TableView 从初始化到出现在屏幕上,当中经历了一系列的过程我们并不清楚,而且只获取一次应该也是不够的,苹果应该也不会把此值存下来。
打断点调用堆栈中也没看出啥…… 我的理解是 table 每次需要的时候向 delegate 要就行了,也没啥性能影响。要想刨根问底,估计只能去看源码了……
这段代码是 你的tableview load 几次就执行几次。设置datasource 的时候执行一次,之后 每load 都会执行一次
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
下面这个代码的执行次数取决于你的 section 数目。你有几次section 就会执行几次,并且每次 load 之后;它都会根据你当前tableview 的section 数目 进行加载。
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
print("Test")
return 0
}
以上就是代码运行次数的逻辑。
你的问题。理论上来说,一般是你 的 stroyboard 上面有数据。即便是没有数据,它也会运行一次(有数据则会运行多次)这是由于默认的datasource指针引起的。 再到代码中,你设置了 datasource ,它自然会reload。所以就执行了多次。iOS开发,仍然建议纯代码。
您可能想查找下面的文章:
- storyboardiOS中storyboard的问题
- 使用storyboard建立tableview运行时代码运行了三次是什么情况?
- storyboard页面跳转到代码页面,UINavigationController在代码页面没有成功显示
- (swift)storyboard中TableViewController无法调用自定义类
- storyboard中tableheaderview的自适应高度问题
- (swift)在storyboard中,TableVC跳转到一个VC,这样可行吗?
- storyboardstoryboard页面跳转和传值
- storyboard约束出错导致textfileld位置移动,如何根据以下报错信息排查问题位置