[問題] 如何多個view共用同一個socket

看板MacDev作者 (Up2u)時間7年前 (2018/03/28 23:35), 7年前編輯推噓4(4018)
留言22則, 9人參與, 7年前最新討論串1/1
我目前在嘗試寫一個連線ptt的app 目前遇到一個問題就是在不同的view如何 把使用者的input送到同一個socket 我目前的作法是有一個最原始的ViewController1 ViewController1: UIViewController { var socket: GCDAsyncSocket! var destinationVC2 : ViewController2! } 每當需要performSegue 則會把 destinationVC2.socketHandler = self socketHandler就是在destinationVC2裡面的ViewController1 class ViewController2: UITableViewController { class ViewController2: UITableViewController { var socketHandler : ViewController1! } 到目前這樣好像都還可以 但是當我要從ViewController2 performSegue 的時候就越來越複雜了 想請問一下大大們都是怎麼處理這樣的行為 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.185.14 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1522251335.A.C39.html

03/28 23:40, 7年前 , 1F
Singleton
03/28 23:40, 1F

03/29 00:26, 7年前 , 2F
socket 一直傳下去就好?
03/29 00:26, 2F

03/29 00:27, 7年前 , 3F
Singleton 和 global variable 差不多的東西
03/29 00:27, 3F

03/29 08:28, 7年前 , 4F
謝謝
03/29 08:28, 4F

03/29 11:09, 7年前 , 5F
我會把VC1, VC2, Socket放在同一個class去做處理
03/29 11:09, 5F

03/29 20:35, 7年前 , 6F
用extension 加一個socket 類別變數到UIView呢?
03/29 20:35, 6F

03/29 20:35, 7年前 , 7F
這樣每個class 都能用
03/29 20:35, 7F

03/30 11:46, 7年前 , 8F
樓主應該是想同一連線有2個不同的VC, 如果把Socket放在
03/30 11:46, 8F

03/30 11:46, 7年前 , 9F
其中之一,另一個要取用時就很困擾,因此不如把Socket,VC
03/30 11:46, 9F

03/30 11:46, 7年前 , 10F
其中之一,另一個要取用時就很困擾,因此不如把Socket,VC
03/30 11:46, 10F

03/30 11:47, 7年前 , 11F
全部放在同一位階.
03/30 11:47, 11F

03/30 12:17, 7年前 , 12F
用extension 不是把socket 放在同個view啊
03/30 12:17, 12F
class CocoaAsyncSockets: GCDAsyncSocket{ var socket: GCDAsyncSocket! } extension CocoaAsyncSockets { } class ViewController: UIViewController{ var s:CocoaAsyncSockets = CocoaAsyncSockets() override func viewDidLoad() { super.viewDidLoad() } @IBAction func enterAction(_ sender: AnyObject) { s.conn() } } 我現在這樣寫 可是我到另一個頁面的時候 呼叫到的CocoaAsyncSockets還是不同一個耶 然後 然後 GCDAsyncSocket這個class必須複寫 func socket(_ sock: GCDAsyncSocket, didConnectToHost host: String, port: UInt16) func socket(_ sock: GCDAsyncSocket, didReadData data: Data, withTag tag: Int32){ 這兩個fucn 所以好像不能宣告成 static ※ 編輯: bjk (220.134.185.14), 03/30/2018 21:58:23

03/31 11:57, 7年前 , 13F
上面就有人建議你singleton了
03/31 11:57, 13F
好像不能宣告成 static 所以不知道如何做成singleton 請大大提示一點 ※ 編輯: bjk (118.160.162.164), 03/31/2018 23:21:45

04/01 11:52, 7年前 , 14F
就把你的GCDAsyncSocket放在singleton的class裡面呼叫
04/01 11:52, 14F

04/01 11:53, 7年前 , 15F
singleton怎麼做,Google的到很多
04/01 11:53, 15F

04/01 12:09, 7年前 , 16F
3q3q
04/01 12:09, 16F

04/01 22:08, 7年前 , 17F
按照T大的方法 可以了
04/01 22:08, 17F

04/01 22:11, 7年前 , 18F
請問如果我要送 上下左右 要用什麼呢Y
04/01 22:11, 18F

04/01 22:12, 7年前 , 19F
"\\u2190" 送這個好像不行 http://xahlee.info/comp/unicode
04/01 22:12, 19F

04/01 22:28, 7年前 , 20F
\u{2190} 送這個也不行
04/01 22:28, 20F

04/03 09:56, 7年前 , 21F
是要寫ptt 連線程式喔?xd
04/03 09:56, 21F

04/03 13:22, 7年前 , 22F
BBS 要送 VT100 escape codes
04/03 13:22, 22F
https://www.csie.ntu.edu.tw/~r92094/c++/VT100.html # Arrow Keys: Reset Set ----- --- up ^[A ^[OA down ^[B ^[OB right ^[C ^[OC left ^[D ^[OD 是這個嘛 ※ 編輯: bjk (220.134.185.14), 04/04/2018 05:06:19
文章代碼(AID): #1QkxP7mv (MacDev)
文章代碼(AID): #1QkxP7mv (MacDev)