さて、基本的に私はBackendlessとFirebaseでチャットを作成する方法についてのudemyのチュートリアルに従っています。しかし、私は2つのプロバイダに依存したくないので、Backendlessを使用しない方が好きです。そのため、私はFirebaseだけに固執したいと思います。したがって、私は現在自分のコードをFirebaseに変換しています。Swiftの奇妙なオプションエラー
私はそれぞれのUIDに固有のページを表示するView Controllerを持っています。 UIDはString
として保存され、別のテーブルビューコントローラからセグに割り当てられます(これはうまくいきます)。その後、UIDを使用して、ユーザーから必要なデータを取得します。新しいチャットを作成するはずの「チャット開始」ボタンがあります。
このチュートリアルでは、チューターが別のビューコントローラから別の機能を起動するプロトコル(デリゲート)を設定しました。
protocol ChooseUserDelegate {
func createChatroom(withUser: String)
}
var delegate: ChooseUserDelegate!
と私のチャット@IBAction
で、私はこのコードを持っている:
@IBAction func StartChat(sender: AnyObject) {
let userID = uid
if let theId = userID as? String {
delegate.createChat(String(theId))
}
}
を(上記のコードは、すべて同じVCである。)これは、次のようになります。 createChat()
関数が格納されている別のビューコントローラで
、次のコードである。
class AnotherVC UIViewController, UITableViewDelegate, UITableViewDataSource, ChooseUserDelegate{
func createChat(withUser: String) {
print(withUser)
}
}
問題がオンため任意エラー(アンラップ)から、私はcreateChat()
を呼び出すために得ることができないということですdelegate.createChat(String(theId))
。
編集:入力があってもエラーが発生します。私は今本当に混乱しています。私の代議員と何か間違っていますか?
デリゲート変数の宣言を確認してください。 –
@RohitKP私が心配する限り、それは正しいです。私はより多くのコードで自分の投稿を更新することができます。 – askaale
質問を判読できるように書式設定してください。 – matt