Заполнение tableView из живого запроса кушетки

Я новичок в программировании, поэтому, пожалуйста, попробуйте объяснить с подробностями или примерами. Я создаю приложение, которое использует кушетки для отображения списка результатов в табличном представлении. Я хочу отображать любые изменения в списке, как только они происходят, поэтому мне нужно использовать оперативный запрос и класс CBLUITableSource. Я скачал приложение Grocery Sync, но не могу понять, как результаты оперативного запроса отображаются в табличном представлении. Я также использую шаблон master-detail по умолчанию в xcode и отображаю пользовательскую ячейку в табличном представлении.

Мой вопрос: как мне отобразить результаты живого запроса в табличном представлении? Нужно ли использовать CBLUITableSource? Вот что у меня есть до сих пор:

Источник данных моей таблицы:

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 5
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell: MatchCellTableViewCell = tableView.dequeueReusableCellWithIdentifier("matchcell", forIndexPath: indexPath) as! MatchCellTableViewCell

    return cell
}

И живой запрос:

func initializeQuery() {
    let query = database.viewNamed("matches").createQuery()
    liveQuery = query.asLiveQuery()
    liveQuery.addObserver(self, forKeyPath: "rows", options: nil, context: nil)
    liveQuery.start()
}

Благодарю вас!


person Mr Stanev    schedule 04.05.2015    source источник


Ответы (1)


CBLUITableSource — это удобный API, упрощающий работу с оперативными запросами и представлениями таблиц на iOS.

Ознакомьтесь с этим репозиторием, чтобы узнать, как настроить табличное представление с помощью CBLUITableSource.

Если вам нужен больший контроль над обновлением пользовательского интерфейса при изменении результата запроса, вы можете просто использовать CBLLiveQuery, как вы это делали :).

person jamiltz    schedule 14.05.2015
comment
Спасибо, это действительно помогло! - person Mr Stanev; 15.05.2015
comment
Итак, если я хочу два разных раздела, мне лучше использовать CBLLiveQuery, а затем CBLUITableSource, верно? - person Min Soe; 14.01.2016