Matrix SDK iOS publi c номер - PullRequest
       8

Matrix SDK iOS publi c номер

1 голос
/ 13 июля 2020

как получить publi c room в swift4.X и более поздних версиях, используя Matrix SDK для ios

этой строки mxSession.start {ответ в // выдает ошибку -> **Cannot invoke 'start' with an argument list of type '(@escaping (MXResponse<Void>) -> Void)'**

let credentials = MXCredentials(homeServer: "http://matrix.org",
                                userId: "@your_user_id:matrix.org",
                                accessToken: "your_access_token")

// Create a matrix client
let mxRestClient = MXRestClient(credentials: credentials, unrecognizedCertificateHandler: nil)

// Create a matrix session
let mxSession = MXSession(matrixRestClient: mxRestClient)

// Launch mxSession: it will first make an initial sync with the homeserver
mxSession.start { response in
    guard response.isSuccess else { return }

    // mxSession is ready to be used
    // now wer can get all rooms with:
    mxSession.rooms
}

Ответы [ 2 ]

2 голосов
/ 20 июля 2020

SwiftMatrixSDK требует Swift 5.0. Проверьте SwiftMatrixSDK.podspe c:

s.swift_version = '5.0'

На основе этого комментария ...

Этот быстрый слой был доставлен сообществом. Команда ядра матрицы запускает проекты в Obj- C, так что поддержка этого модуля не входит в наши приоритеты на данный момент.

... Я не ожидал, что они будут поддерживать Swift 4 совместимость, так как Swift 5 работает с нами более года. Но я не могу говорить за них, это всего лишь мое предположение.

Ваш пример явно является копией и вставкой из README, и он не работает даже со Swift 5. Инициализатор MXSession допускает ошибки, и вы должны использовать:

  • guard для let mxSession или
  • mxSession?.start, mxSession?.rooms

Следующий код отлично компилируется с Swift 5:

import SwiftMatrixSDK

func doSomethingWithRooms() {
    let credentials = MXCredentials(homeServer: "http://matrix.org",
                                    userId: "@your_user_id:matrix.org",
                                    accessToken: "your_access_token")

    // Create a matrix client
    let mxRestClient = MXRestClient(credentials: credentials, unrecognizedCertificateHandler: nil)

    // Create a matrix session
    guard let mxSession = MXSession(matrixRestClient: mxRestClient) else { return }

    // Launch mxSession: it will first make an initial sync with the homeserver
    mxSession.start { response in
        guard response.isSuccess else { return }

        // mxSession is ready to be used
        // now wer can get all rooms with:
        let rooms = mxSession.rooms
    }
}

Я бы сказал, что вам следует заполнить вопрос (вопрос) и задать его там или перейти на Swift 5.

Проект перешел на Swift 5 в версии v0.13.0. Ознакомьтесь с примечаниями к выпуску :

SwiftMatrixSDK: переход на Swift 5.0.

Теоретически предыдущая версия ( v0.12.5 ) должен работать со Swift 4. Если работает, значит, вы сможете его скомпилировать, но в нем будет отсутствовать довольно много функций и исправлений ошибок, поскольку эта версия была выпущена 3 мая 2019 г.

0 голосов
/ 24 июля 2020

Не могли бы вы объяснить мне, как загружать и скачивать медиа-файлы с помощью этого SDK. Хорошо, я читал документацию, но многого не понимаю. Я делаю сеанс в комнате и что делать дальше, где и как сделать загрузку с userA и загрузку с userB. Я написал Swift 5

...