看板 MacDev 關於我們 聯絡資訊
我目前在嘗試寫一個連線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
yr: Singleton03/28 23:40
yllan: socket 一直傳下去就好?03/29 00:26
yllan: Singleton 和 global variable 差不多的東西03/29 00:27
bjk: 謝謝03/29 08:28
annies5: 我會把VC1, VC2, Socket放在同一個class去做處理03/29 11:09
ckvir: 用extension 加一個socket 類別變數到UIView呢?03/29 20:35
ckvir: 這樣每個class 都能用03/29 20:35
annies5: 樓主應該是想同一連線有2個不同的VC, 如果把Socket放在03/30 11:46
annies5: 其中之一,另一個要取用時就很困擾,因此不如把Socket,VC03/30 11:46
annies5: 其中之一,另一個要取用時就很困擾,因此不如把Socket,VC03/30 11:46
annies5: 全部放在同一位階.03/30 11:47
ckvir: 用extension 不是把socket 放在同個view啊03/30 12:17
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
tom19830924: 上面就有人建議你singleton了03/31 11:57
好像不能宣告成 static 所以不知道如何做成singleton 請大大提示一點 ※ 編輯: bjk (118.160.162.164), 03/31/2018 23:21:45
Teferi: 就把你的GCDAsyncSocket放在singleton的class裡面呼叫 04/01 11:52
Teferi: singleton怎麼做,Google的到很多 04/01 11:53
bjk: 3q3q 04/01 12:09
bjk: 按照T大的方法 可以了 04/01 22:08
bjk: 請問如果我要送 上下左右 要用什麼呢Y 04/01 22:11
bjk: "\\u2190" 送這個好像不行 http://xahlee.info/comp/unicode 04/01 22:12
bjk: \u{2190} 送這個也不行 04/01 22:28
keith222: 是要寫ptt 連線程式喔?xd 04/03 09:56
uranusjr: BBS 要送 VT100 escape codes 04/03 13:22
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