Ошибка декодирования JSON в модулях GetStreamActivityFeed - PullRequest
0 голосов
/ 30 сентября 2019

Пример приложения здесь https://getstream.io/ios-activity-feed/tutorial/ хорошо работает с использованием примера ключа API клиента, идентификатора приложения и токена. Действительно загружает и загружает сообщения, которые можно просмотреть на панели инструментов. Однако, когда я меняю ключ api, идентификатор приложения и токен на свой (я отправил электронное письмо в онлайновый сервер потоковой передачи Nodejs для создания токена), хотя я могу нажать на сообщение и просмотреть его на панели мониторинга, загрузкавыдает сообщение об ошибке:

Ошибка декодирования JSON: данные не могут быть прочитаны, поскольку они имеют неправильный формат.

Я сравниваю данные в двух онлайн-панелях иОтмечено, что посты в обоих имеют одинаковые типы.

Сначала я действительно думал, что FlatFeedViewController в примере приложения - это быстрое и чистое решение.

Я использовал 100% код по этой ссылке.

В AppDelegate:

        apiKey: "xxxxxxxx",
            appId: "xxxx",
            token: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")

        Client.shared.getCurrentUser(typeOf: GetStreamActivityFeed.User.self) { result in
            if result.error == nil, let viewController = self.window?.rootViewController as? ViewController {
                 viewController.reloadData()
            }
        }

В контроллере представления:

class ViewController:  FlatFeedViewController<GetStreamActivityFeed.Activity> {
    let textToolBar = TextToolBar.make()

    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    override func viewDidLoad() {
        appDelegate.getStream()

        if let feedId = FeedId(feedSlug: "timeline") {
            let timelineFlatFeed = Client.shared.flatFeed(feedId)
            presenter = FlatFeedPresenter<GetStreamActivityFeed.Activity>(flatFeed: timelineFlatFeed, reactionTypes: [.likes, .comments])
        }

        super.viewDidLoad()
        setupTextToolBar()
        subscribeForUpdates()
    }

    func setupTextToolBar() {
        textToolBar.addToSuperview(view, placeholderText: "Share something...")
        // Enable URL unfurling.

        textToolBar.linksDetectorEnabled = true
        // Enable image picker.
        textToolBar.enableImagePicking(with: self)
        textToolBar.sendButton.addTarget(self, action: #selector(save(_:)), for: .touchUpInside)
    }

    @objc func save(_ sender: UIButton) {
        // Hide the keyboard.
        view.endEditing(true)

        if textToolBar.isValidContent, let presenter = presenter {
            textToolBar.addActivity(to: presenter.flatFeed) { result in
                print(result) // It will print the added activity or error.
            }
        }
    }

Я ожидал, что загруженные сообщения будут загружены в приложение. Но ошибка декодирования приводит к. Ошибка генерируется в открытом финальном классе Activity, в частности в функции: public required init (from decoder: Decoder) throws {

Пожалуйста, помогите.

...