socket - ios 代理模式如何转换成顺序执行的流程?
迷茫
迷茫 2017-04-18 09:24:57
0
3
531
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

membalas semua(3)
Peter_Zhu

Soalan anda benar-benar abstrak
1. Menerima atau menghantar data adalah fungsi bebas, dengan mengandaikan ia adalah sendRead, pisahkan ia daripada perniagaan. Dengan cara ini, apabila menerima data, hanya terima data Apabila data mencapai standard yang anda mahu, hubungi semula dari modul sendRead.
readFromSocket(buffer)
Kaedah ini boleh diubah menjadi gaya dengan panggilan balik blok:

func readFromSocket(data:NSData,completeHander:(receivedData:NSData?)-> Void){
    //接收数据的事

    //在某个时机调用回调,应该不是当前这个方法里,接收数据应该都是异步的吧
    completeHander(receivedData: xxx)
}

Apabila perniagaan anda mencapai tahap tertentu dan anda memerlukan data tertentu, hubungi ini dan kemudian proseskannya dalam panggilan balik. Pada masa ini, panggilan balik hanya perlu memproses logik peringkat ini . Walaupun ini masih tidak boleh membuat panggilan berurutan, kerana menerima data tidak dapat diselesaikan sekaligus, dan ia mesti menunggu penerima data untuk memberitahu secara aktif.

2. Saya melihat bahawa anda perlu melakukan beberapa pertimbangan status dalam handleData Adakah perniagaan ini berjalan dengan berbilang urutan pada masa yang sama? Jika tidak, ia akan menjadi lebih mudah, kerana APP kini berada dalam satu keadaan, dan anda hanya perlu mengumpul data satu keadaan dahulu dan kemudian membuangnya ke kod perniagaan untuk diproses. Jika tidak, logik perniagaan mesti diasingkan, dan operasi baca juga mesti diasingkan.

左手右手慢动作

Mengapa banyak kesilapan ejaan?

小葫芦

ReactiveCocoas atau RxSwift

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan