Penso che in alcuni casi le intestazioni Objective-C trasportano meno informazioni nel complesso, ma possono mostrare le interfacce in modo più chiaro.
Ad esempio: utilizzando i moderni runtime Objective-C (per Mac OS e iOS) non è necessario dichiarare iVar privati o metodi privati nelle intestazioni, che possono essere spostati in una categoria nel file di implementazione. È anche possibile ridichiarare le proprietà come readwrite
nell'implementazione in cui sono dichiarate come readonly
nel file di intestazione.
Ciò significa che c'è molto di più in corso in una classe rispetto a quanto mostrato nei file di intestazione, ma le interfacce pubbliche sono chiaramente definite separatamente dall'implementazione privata - che è una buona cosa in un diagramma UML.
Come per i nomi di metodi lunghi, fa parte della convenzione di Objective-C. Puoi amarlo o detestarlo (personalmente lo amo). Ma in termini di scrittura, i metodi non mostrano i loro parametri. Per esempio: si supponga di avere un metodo dichiarato come:
- (NSString *)resultStringWithOptions:(NSDictionary *)options withCharacterSet(NSCharacterSet *)charSet error:(NSError **)error:
L'attuale nome di questo metodo è:
resultStringWithOptions:withCharacterSet:error:
che è più breve.
Si dispone di un punto, tuttavia i diagrammi delle classi possono creare confusione e talvolta devono essere inclusi tipi per aiutare a dare chiarezza sulla funzionalità e l'architettura di un sistema. In tal caso il nome del metodo diventa molto più lungo, specialmente per i metodi con più di 2 argomenti! – user559142