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

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

répondre à tous(3)
Peter_Zhu

Votre question est vraiment abstraite
1. La réception ou l'envoi de données est une fonction indépendante, en supposant qu'elle soit sendRead, séparez-la de l'entreprise. De cette façon, lors de la réception de données, recevez simplement les données. Lorsque les données atteignent la norme souhaitée, rappelez depuis le module sendRead.
readFromSocket(buffer)
Cette méthode peut être transformée en style avec un rappel de bloc :

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

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

Lorsque votre entreprise atteint un certain stade et que vous avez besoin de certaines données, appelez-les puis traitez-les dans le rappel. Pour le moment, le rappel n'a qu'à traiter la logique de cette étape . Bien que cela ne puisse toujours pas réaliser d'appels séquentiels, parce que la réception des données ne peut pas être effectuée en une seule fois, il faut attendre que le destinataire des données le notifie activement.

2. Je vois que vous devez effectuer plusieurs jugements de statut dans handleData. Cette entreprise fonctionne-t-elle avec plusieurs threads en même temps ? Sinon, ce serait plus simple, car l'APP est actuellement dans un seul état et il vous suffit d'abord de collecter les données d'un seul état, puis de les transmettre au code métier pour traitement. Sinon, la logique métier doit être séparée et les opérations de lecture doivent également être séparées.

左手右手慢动作

Pourquoi tant de fautes d’orthographe ?

小葫芦

ReactiveCocoas ou RxSwift

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal