È una buona idea mettere la dichiarazione dei protocolli per i delegati in un'interfaccia di categoria privata?

3

Ho un controller di visualizzazione o una vista che implementa delegate e dataSource metodi di UITableView .

Questi metodi non verranno utilizzati al di fuori di questa classe.

Quindi è una buona idea rendere la dichiarazione di UITableViewDataSource e UITableViewDelegate nel file .m con una categoria privata?

Ad esempio :

Invece di fare questo:

MyViewController.h

@interface MyViewController:UIViewController<UITableViewDataSource,UITableViewDelegate>
{}
@end

Ho inserito la dichiarazione nella categoria privata all'interno poiché non è necessario che altri oggetti sappiano se il mio controller di visualizzazione utilizza o meno un TableView.

MyViewController.m

@interface MyViewController()<UITableViewDataSource,UITableViewDelegate>
@end

e l'implementazione nel file .m è la stessa in entrambi i casi.

    
posta Amogh Talpallikar 15.05.2013 - 08:25
fonte

2 risposte

3

So is it a good idea to make the declaration of the UITableViewDataSource and UITableViewDelegate inside the .m file with a private category?

Questo dipende. Il fatto che MyViewController questi protocolli sia un dettaglio di implementazione privato o qualcosa che vuoi comunicare a chiunque usi la classe?

I file di intestazione sono lì per comunicare l'interfaccia pubblica della tua classe, non solo al compilatore ma anche a chiunque usi la classe. Se si include il fatto che la classe implementa un determinato protocollo nella documentazione scritta, è necessario dichiarare l'uso del protocollo nell'intestazione. Se non lo inseriresti nei documenti e desideri inviare il messaggio che nessuno dovrebbe contare sulla classe che implementa quel protocollo, inseriscilo nel file di implementazione.

    
risposta data 15.05.2013 - 15:08
fonte
0

Tecnicamente, non ha conseguenze. Interface Builder riconoscerà che la classe implementa i protocolli e offre una connessione.

Il codice Apple inserisce i protocolli nell'intestazione ed è pratica comune. Quindi chiunque visiti il tuo codice si aspetta di vederli lì.

Penso che tu stia pensando di nascondere i protocolli. Non riesco a immaginare uno scenario in cui è dannoso esporre tali informazioni. Puoi?

    
risposta data 15.05.2013 - 14:31
fonte

Leggi altre domande sui tag