/ / Aký je koncept selektorov v rýchlom konaní? - rýchly, selektor, nstimer, nsobject

Aká je koncepcia rýchlych voličov? - rýchle, selektor, nstimer, nsobject

Videl som objekty, ktoré vyžadujú parameter, selektor. Aký je všeobecný pojem pre pochopenie selektora?

Príkladom výberu selektora je NSTimer, kde môj selektor, ktorý som si vybral, je funkcia zvyšujúca počítadlo.

  timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: ("incrementCounter"), userInfo: nil, repeats: true)

odpovede:

3 pre odpoveď č. 1

Selektor je koncept z Objective-C, ktorýpredstavuje správu, ktorá sa má dynamicky odoslať (t. j. metóda, ktorá sa má volať) v čase vykonávania. Keď nastavíte niečo, čo sa má urobiť pomocou selektora, viete, ktorá správa sa odošle, ale nie nevyhnutne aké sú jej parametre. (A niekedy ani to, do ktorého objektu bude zaslaný.)

Môžete považovať selektory za príbuznéhouzávery / bloky, pretože umožňujú zabaliť nejaký kód, ktorý sa má zavolať neskôr, a odovzdajú ho inej funkcii. Uzatvorenie však musí byť špecifikované / vyriešené v čase kompilácie, takže je menej dynamické ako selektor.

Selektory sú skvelé pre koncepty „voľnej väzby“ako kontrolné akcie. Pomocou nástroja na výber môžete v aplikácii Interface Builder zvoliť, ktorú metódu by tlačidlo malo volať po kliknutí, aj keď vaša aplikácia v skutočnosti nie je spustená v IB, alebo môžete povedať, že toto tlačidlo by malo volať paste: pri akomkoľvek zobrazení textu, ktoré má fokus na klávesnicu “, nevedel, keď nastavíte tlačidlo, ktoré bude zobrazovať (pretože fokus klávesnice sa neustále mení).

Selektory v objC predchádzajú bloky / uzávery, takhistoricky boli selektory primárnym spôsobom, ako povedať rozhraniu API veci, ako je „zavolať túto metódu neskôr“, a preto ich nájdete v kakao pre vzory, ako sú časovače, zoradenie polí a vrátenie späť, aj keď takéto vzorce by mohli viac ťažiť z tesnej väzby uzávery / blokov.

Ďalšie informácie o používaní selektorov v aplikácii Swift nájdete na stránke Interakcia s rozhraním API Objective-C v Použitie Swift s kakaom a Cieľom-C a / alebo tejto odpovedi SO, Viac informácií o selektoroch a kakae všeobecne nájdete na stránke Hlavné kompetencie kakaa: selektor.


2 pre odpoveď č. 2

A selector je vlastná metóda, ktorá sa volá v triede určenej target keď sa spustí časovač. Ak má metóda brať parametre, je každý parameter reprezentovaný dvojbodkou.

V Swift struct Selector reaguje na protokol StringLiteralConvertible,
Preto, pretože kompilátor pozná typ vo vašom príklade, doslovný reťazec sa implicitne skonvertuje na a Selector príklad a Selector inicializátor nie je potrebný.

PS: Zátvorky okolo výberového reťazca nie sú potrebné.