Ошибка службы данных не разрешается

Одна из многих проблем, с которыми я сталкиваюсь, - это ошибка:

Type 'DataService' has no member 'dataService'

Я искал, но не могу найти ничего окончательного. Ваша помощь очень ценится. Я не уверен, в чем проблема. Сначала я думал, что служба была изменена на базу данных, но это тоже было неправильно, если только я не ошибаюсь.

import UIKit
import Firebase

class UserFeedTableViewController: UITableViewController {
    let ref = Database.database().reference(withPath: "userpost-items")

    var userpost = [UserPost]()

    override func viewDidLoad() {
        super.viewDidLoad()

        // observeEventType is called whenever anything changes in the Firebase - new Jokes or Votes.
        // It's also called here in viewDidLoad().
        // It's always listening.

        DataService.dataService.USERPOST_REF.observe(.value, with: { snapshot in
            // The snapshot is a current look at our jokes data.
            self.userposts = []

            if let snapshots = snapshot?.children.allObjects as? [FDataSnapshot] {
                for snap in snapshots {
                    // Make our jokes array for the tableView.

                    if let postDictionary = snap.value as? Dictionary<String, AnyObject> {
                        let key = snap.key
                        let userpost = UserPost(key: key!, dictionary: postDictionary)

                        // Items are returned chronologically, but it's more fun with the newest jokes first.

                        self.userpost.insert(userpost, at: 0)
                    }
                }
            }

            // Be sure that the tableView updates when there is new data.

            self.tableView.reloadData()
        })
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return userpost.count
    }

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

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let userpost = self.userpost[indexPath.row]

        // We are using a custom cell.
        if let cell = tableView.dequeueReusableCell(withIdentifier: "UserPostCellTableViewCell") as? UserPostTableViewCell {
            // Send the single user post to configureCell() in UserPostCellTableViewCell.
            cell.configureCell(userpost: userpost)

            return cell
        } else {
            return UserPostTableViewCell()
        }
    }
}

Можете ли вы опубликовать полное сообщение об ошибке?

NOhs 07.07.2018 01:42

Ниже показано сообщение об ошибке, которое я получаю, когда пытаюсь запустить симуляцию. Тип DataService не имеет члена dataService.

limskey 07.07.2018 02:33

Зачем ты это делаешь DataService.dataService.? Ссылка класса должна быть изначально определена как var ref: DatabaseReference!, а затем, возможно, viewDid загрузит self.ref = База данных.database (). ссылка (), а затем во всем остальном классе просто определите путь, который вы хотите наблюдать, например let postRef = self.ref.child ("сообщения"). Вам также следует подумать об обновлении до Firebase 4.

Jay 07.07.2018 15:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я опубликовал комментарий, но реальный код более четко сформулирует предложенный мной шаблон. Есть 100 других способов сделать это. (Примечание: Swift 4, Firebase 4)

class UserFeedTableViewController: UITableViewController {
    var ref: DatabaseReference!

    var userpost = [UserPost]()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.ref = Database.database().reference()
    }

    func loadPosts() {
       let postRef = self.ref.child("posts")
       postRef.observe(.value, with: { snapshot in
          self.userposts = []
          ...
    }

как я уже сказал, я новичок и использую учебники, Google, чтобы учиться (нужно купить книгу). Я очень благодарен за то, что вы нашли время помочь мне. Кстати, когда я помещаю postRef.observe (.value, с: {снимок в ... он выдает ошибку ... Ярлыки аргументов '(_ :, с :, _ :)' не соответствуют ни одному доступному перегрузки ....

limskey 08.07.2018 01:47

@limskey Да, это верная ошибка. Обратите внимание, что я упоминал об использовании Swift 4 и Firebase 4 - вы используете старую версию Firebase, где функции другие. На этом этапе вам действительно стоит перейти на новую версию. Как только вы поймете этот код, если он помог, не забудьте принять его, чтобы он мог помочь другим!

Jay 08.07.2018 14:33

Эй, есть ли книга или учебное пособие, которое вы бы порекомендовали мне изучить? Я устал искать онлайн-руководства по старым языкам программирования, таким как swift 3. Еще раз спасибо!

limskey 08.07.2018 20:19

@limskey Есть цитата из контента, доступного для Swift 3, но на самом деле Swift 4 актуален и действительно подходит. То же самое и с Firebase - получите текущую версию и сосредоточьтесь на ней.

Jay 08.07.2018 20:47

Другие вопросы по теме