Пример приложения здесь 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 {
Пожалуйста, помогите.