作者bjk (Up2u)
看板MacDev
标题[问题] 如何多个view共用同一个socket
时间Wed Mar 28 23:35:32 2018
我目前在尝试写一个连线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://webptt.com/cn.aspx?n=bbs/MacDev/M.1522251335.A.C39.html
1F:→ yr: Singleton03/28 23:40
2F:推 yllan: socket 一直传下去就好?03/29 00:26
3F:→ yllan: Singleton 和 global variable 差不多的东西03/29 00:27
4F:→ bjk: 谢谢03/29 08:28
5F:→ annies5: 我会把VC1, VC2, Socket放在同一个class去做处理03/29 11:09
6F:推 ckvir: 用extension 加一个socket 类别变数到UIView呢?03/29 20:35
7F:→ ckvir: 这样每个class 都能用03/29 20:35
8F:→ annies5: 楼主应该是想同一连线有2个不同的VC, 如果把Socket放在03/30 11:46
9F:→ annies5: 其中之一,另一个要取用时就很困扰,因此不如把Socket,VC03/30 11:46
10F:→ annies5: 其中之一,另一个要取用时就很困扰,因此不如把Socket,VC03/30 11:46
11F:→ annies5: 全部放在同一位阶.03/30 11:47
12F:→ 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
13F:推 tom19830924: 上面就有人建议你singleton了03/31 11:57
好像不能宣告成 static
所以不知道如何做成singleton
请大大提示一点
※ 编辑: bjk (118.160.162.164), 03/31/2018 23:21:45
14F:→ Teferi: 就把你的GCDAsyncSocket放在singleton的class里面呼叫 04/01 11:52
15F:→ Teferi: singleton怎麽做,Google的到很多 04/01 11:53
16F:→ bjk: 3q3q 04/01 12:09
17F:→ bjk: 按照T大的方法 可以了 04/01 22:08
18F:→ bjk: 请问如果我要送 上下左右 要用什麽呢Y 04/01 22:11
20F:→ bjk: \u{2190} 送这个也不行 04/01 22:28
21F:推 keith222: 是要写ptt 连线程式喔?xd 04/03 09:56
22F:→ 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