私は10秒後に真を送信するサーバを持っています。 iOSアプリをサーバーから受け取るまで待機するにはどうしたらよいですか? 10秒は一定ではありません、サーバーがどれくらい時間がかかっても、ブール値を取得できるようにアプリケーションが必要です。socket.ioとSwiftを使用してメッセージを待ちます。
私のアプリは水が一定の高さになるまで水を注ぐのに使われ、それが終わったらあなたの電話であなたに通知します。
UPDATE(詳細):
リンクは、私は、次の午前案内する:http://www.appcoda.com/socket-io-chat-app/
func getChatMessage(completionHandler: (messageInfo: [String: AnyObject]) -> Void) {
socket.on("newChatMessage") { (dataArray, socketAck) -> Void in
var messageDictionary = [String: AnyObject]()
messageDictionary["nickname"] = dataArray[0] as! String
messageDictionary["message"] = dataArray[1] as! String
messageDictionary["date"] = dataArray[2] as! String
completionHandler(messageInfo: messageDictionary)
}
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
SocketIOManager.sharedInstance.getChatMessage { (messageInfo) -> Void in
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.chatMessages.append(messageInfo)
self.tblChat.reloadData()
// self.scrollToBottom()
})
}
}
を私は常にサーバーからメッセージを取得しにロードされ、これに非常に似た何かをしたいです景色。ただし、このコードはSwift 3/iOS 10では動作しません。アップデートする方法についてのドキュメントは見つかりません。私は単純にそれを自分のコードに入れてみました。そして、それを試して、それを動作させるために推奨される修正を使ってみましたが、そうしませんでした。
最終的に私のサーバーはPiゼロでホストされ、サーバーから水が適切なレベルに達したというメッセージをPiから受け取る必要があります。 おかげ
1秒ごとに(または0.1秒ごとなど)実行されるタイマーを実行し、アラートを送信してtrueの場合はタイマーを終了できます –