Protocolli

di il
11 risposte

Protocolli

Salve a tutti,avrei urgentissimo bisogno del vostro aiuto:
ci sarebbe qualcuno cosi gentile da potermi spiegare cosa sono i protocolli e cosa vuol dire avere una property che deve essere conforme a un protocollo

grazie mille per la vostra disponibilità e pazienza

11 Risposte

  • Re: Protocolli

    Ciao in linea generale un protocollo è un insieme di regole e norme che servono a definire come un sistema, un'entità o attività si deve relazionare con le altre.
    Per esempio l'FTP (File Transfert Protocol) è un protocollo che definisce come deve avvenire lo scambio di file tra sistemi anche diversi.
  • Re: Protocolli

    Ciao, quindi una property che aderisce a un protocollo quali vincoli deve rispettare?
  • Re: Protocolli

    Quelli del protocollo.
  • Re: Protocolli

    Quindi nel caso io abbia:
    
    @protocol ClasseBDelegate <NSObject>
    - (void)mioEvento:(id)sender;
    @end
    
    @interface ClasseB : NSObject 
    {
        
    }
    
    @property (assign) id <ClasseBDelegate> delegate;
    
    la property delegate, che deve essere conforme al protocollo "ClasseBDelegate", cosa deve rispettare?
    questo non riesco a capire
  • Re: Protocolli

    I protocolli in generale sono quelli di cui parlava toki. In Objective C però i protocol sarebbero quelle che in Java si chiamano interfacce. Sulla documentazione di apple trovi la spiegazione, Cerca Protocols nella sezione Cocoa Fundamentals.

    In alternativa, se hai problemi con l' inglese, dai un occhio sul magico wiki.

    Intanto provo a spiegarti in due parole in cosa consiste.
    In sostanza quando definisci un protocol, non fai altro che definire le dichiarazioni di determinati metodi che potranno essere poi implementati da qualunque classe. Se una classe implementa quel protocollo è obbligata a implementare quei metodi, altrimenti non ti compila il programma. Una classe è conforme ad un protocollo quando implementa i metodi di esso.

    Spero sia tutto chiaro. Sul link di wikipedia ci trovi anche un esempio.

    Buon lavoro
  • Re: Protocolli

    Ciao d0zer, si grazie per i vari link, io il fatto delle classe e protocolli li avevo capiti, quello che non riesco a capire è cosa vuol dire che una PROPERTY aderisce a un protocollo. Cioè mica una property deve implementare dei metodi.
    Non so se mi sono spiegato bene
  • Re: Protocolli

    In un protocollo puoi definire anche delle property. Suppongo che per "avere una property che deve essere conforme a un protocollo" s' intende andare a dichiarare nella classe che implementa il protocollo, anche il syntesize (o in alternativa le implementazioni del getter e il setter della property).


    Di fatto quando hai una property e dichiari il syntesize, non fai altro che dire al compilatore di scrivere da solo i metodi get e set dell' attributo. Di conseguenza se dichiari una property nel protocollo, nella classe che implementa quel protocollo bisogna che ci sia o il syntesize o questi due metodi, altrimenti la property (e quindi la classe) non è conforme al protocollo.

    Sto fatto della property che dev'essere conforme al protocollo non l'avevo mai sentita, ma suppongo sia questo...non riesco a trovare altre spiegazioni
  • Re: Protocolli

    No io non intendo il fatto che una property viene dichiarata in un protocollo, io intendo questo:
    
    @property  id <ClasseBDelegate> delegate;
    
    cioè in questo caso la property "delegate" cosa deve rispettare del protocollo "ClasseBDelegate"?
  • Re: Protocolli

    Se tu hai una property del genere e vai a settarla da qualche parte, gli darai un istanza della classe. Se quella classe implementa i metodi di quel protocollo allora è conforme, altrimenti no, perchè gli stai dando un oggetto che non è conforme al protocollo che hai specificato tra parentesi angolari.

    Spero di esser stato chiaro...forse non riesco a capire qual è il tuo problema...
  • Re: Protocolli

    Hai centrato il punto,ecco quindi è la classe che chiamerà la property che deve essere conforme al protocollo e non la property, infatti mi domandavo: ma una property cosa deve rispettare?
    grazie mille ora mi è chiaro!
  • Re: Protocolli

    Perfetto prego
Devi accedere o registrarti per scrivere nel forum
11 risposte