Rumah > Soal Jawab > teks badan
天蓬老师2017-04-18 09:26:57
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.