Maison  >  Questions et réponses  >  le corps du texte

socket - ios 代理模式如何转换成顺序执行的流程?

迷茫迷茫2716 Il y a quelques jours485

répondre à tous(3)je répondrai

  • 天蓬老师

    天蓬老师2017-04-18 09:26:57

    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.

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-18 09:26:57

    Pourquoi tant de fautes d’orthographe ?

    répondre
    0
  • 高洛峰

    高洛峰2017-04-18 09:26:57

    ReactiveCocoas ou RxSwift

    répondre
    0
  • Annulerrépondre