У меня есть табличное представление, которое должно иметь свои свойства делегирования и источника данных, заданные из InsertIntoTableViewDelegate
и InsertIntoTableViewDatasource
классов соответственно. Однако мой класс InsertIntoTableViewDatasource
всегда возвращает null
.Класс, реализующий UITableViewDataSource, всегда равен нулю
Вот код:
class InsertIntoTableViewDatasource: NSObject,UITableViewDataSource {
var data:NSMutableArray
init(With data: NSMutableArray){
self.data = data
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("rowCell", forIndexPath: indexPath)
cell.textLabel?.text = data[indexPath.row] as? String
return cell
}
}
Вот как TableView создается:
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Testing"
tableView.dataSource = InsertIntoTableViewDatasource(With: data)
tableView.delegate = InsertIntoTableViewDelegate()
}
Почему это так?
Из любопытства вы знаете, почему оно не хранит его источник данных? – user481610
Его общий способ сделать сам контроллер представления источником данных, так что вы получите цикл сохранения из контроллера вида и таблицы, сохраняя друг друга. По той же причине объекты обычно не сохраняют своих делегатов. – dan