cellForRowAtIndexPath从来没有在UITableViewController中调用

cellForRowAtIndexPath永远不会被调用(numberOfRowsInSection是)使用UITableViewController以下列方式:

import UIKit import EventKit class EventThisWeekController: UITableViewController { var eventStore: EKEventStore = EKEventStore() var eventsThisWeek: [EKEvent] = [] override func viewDidLoad() { super.viewDidLoad() self.eventStore.requestAccessToEntityType(.Event) { (granted, error) -> Void in guard granted else { fatalError("Permission denied") } let endDate = NSDate(timeIntervalSinceNow: 604800) let predicate = self.eventStore.predicateForEventsWithStartDate(NSDate(), endDate: endDate, calendars: nil) self.eventsThisWeek = self.eventStore.eventsMatchingPredicate(predicate) print(self.eventsThisWeek.count) } } override func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { print("cellForRowAtIndexPath") let cell = UITableViewCell(style: .Default, reuseIdentifier: nil) cell.textLabel?.text = self.eventsThisWeek[indexPath.row].title return cell } override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { print("numberOfRowsInSection") return eventsThisWeek.count } } 

数据源和委托被分配给这个控制器,EvenThisWeekController是在主要故事板中devise的一个类。 因此,在我的应用程序表中显示没有任何结果。 当然,eventThisWeek数组的长度不等于0.任何想法我可以如何解决它?

用viewDidLoadreplace你的代码。

 self.eventStore.requestAccessToEntityType(.Event) { (granted, error) -> Void in guard granted else { fatalError("Permission denied") } let endDate = NSDate(timeIntervalSinceNow: 604800) let predicate = self.eventStore.predicateForEventsWithStartDate(NSDate(), endDate: endDate, calendars: nil) self.eventsThisWeek = self.eventStore.eventsMatchingPredicate(predicate) dispatch_async(dispatch_get_main_queue(),{ self.tableView.reloadData() }) print(self.eventsThisWeek.count) } 

你的cellForRowAtIndexPath不会调用,因为当你的视图加载的时候,数组是空的,当self.eventStore.requestAccessToEntityType完全执行,并用新值加载数组时,你不通知你的tableView重载数据,因为你有新的数组中的值。