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

objective-c - iOS中的delegate的原理是怎么回事?

如题,以前是个c#新手,在c#里也经常用委托,回来熟了lambda后都是直接写个lambda过去。当时没觉着二者区别多大。
但现在搞iOS有点晕了,怎么这里block和delegate是不同的东西?然后再看看委托的使用上怎么又觉着这不是和使用传统意义上的接口然后多态一个意思嘛?只是delegate有optional和request而已啊。
哎呦不对,我在写这个问题的时候突然感觉好像委托就是我所说的这个原理?求大神给解惑……

PHP中文网PHP中文网2735 Il y a quelques jours436

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

  • 伊谢尔伦

    伊谢尔伦2017-04-25 09:05:21

    Le délégué en objc n'est pas le même concept qu'en c# Le délégué en obj c est le mode de délégation dans le design pattern, qui est généralement un protocole (appelé interface dans d'autres langages, protocole en objc), facultatif et obligatoire. (Je suppose que le mot "demande" (vous l'avez mal orthographié) signifie si une certaine méthode ou variable lors de la mise en œuvre du protocole est obligatoire ou facultative. Par exemple, la vue table elle-même ne sait pas combien de lignes elle souhaite afficher ni ce qu'elle souhaite afficher. Lorsqu'elle aura besoin de l'afficher, elle demandera à son délégué (une autre référence faible d'un objet qui obéit à UITableViewDelegate/UITableViewDatasource). Je veux l'afficher. Combien de lignes ? Quelle est la hauteur de chaque rangée ? Montrer quelque chose ? Si une classe obéit à UITableViewDelegate, certaines méthodes doivent être implémentées (obligatoires) et certaines sont facultatives (facultatif). Pensez simplement que vous utilisez simplement des mots-clés lourds en objc et c#, mais les significations sont différentes.

    répondre
    0
  • Annulerrépondre