ios - 使用storyboard建立tableview运行时代码运行了三次是什么情况?
PHP中文网
PHP中文网 2017-04-18 09:47:07
0
2
536
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
    }
}
PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(2)
巴扎黑

이 코드는 테이블뷰 로드 횟수만큼 실행됩니다. 데이터소스 설정 시 1회 실행되고, 이후 로드 시 1회 실행

으아아아

아래 코드가 실행되는 횟수는 섹션 수에 따라 다릅니다. 섹션이 있는 만큼 여러 번 실행되며, 로드할 때마다 현재 테이블뷰의 섹션 수에 따라 로드됩니다.

으아아아

위는 코드 실행 횟수에 대한 논리입니다.
귀하의 질문입니다. 이론적으로 말하면, 스트로이보드에는 일반적으로 데이터가 들어 있습니다. 데이터가 없더라도 한 번(또는 데이터가 있는 경우 여러 번) 실행됩니다. 이는 기본 데이터 소스 포인터로 인해 발생합니다. 코드에서 데이터 소스를 설정하면 자연스럽게 다시 로드됩니다. 그래서 여러 번 실행되었습니다. iOS 개발의 경우 순수 코드가 여전히 권장됩니다.

Peter_Zhu

iOS 10.1 테스트를 5번이나 진행했는데...
TableView가 초기화부터 화면에 나타나기까지 일련의 과정을 거쳤다는 걸 우리는 알 수 없고, 한 번만 얻는 것만으로는 충분하지 않습니다. 예, Apple은 아마도 이 값을 저장하지 않을 것입니다.
중단점 호출 스택에 아무 ​​것도 표시되지 않습니다... 필요할 때마다 대리자에게 테이블을 요청할 수 있으며 성능에 영향을 미치지 않는 것으로 이해합니다. 근본 원인을 파악하려면 소스 코드를 살펴봐야 할 것입니다...

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!