Rilassatevi il concetto di namespace in Objective-C non esiste e probabilmente non esisterà mai. Questo perché Objective-C non è un linguaggio, ma come tutte le cose di Apple, è una filosofia. “Make things simple“, dicono. Vabbè, personalmente soffro molto la mancanza dei namespace, soprattutto quando lavoro su progetti di medie e grosse dimensioni. Infatti può capitare di incappare in un symbol conflict, ovvero quando due classi di due framework diversi hanno le stesso nome. Se si utilizzano entrambe le classi il compilatore spara un bell’errore di compilazione. Allora che fare?
Prima di tutto è buona norma seguire le regole della Code Naming Basics fornita da Apple. Questo può evitare che i nomi delle proprie classi vadano in conflitto con quelli di un altro framework. Invece quando il problema non è nel proprio codice ma in framework di terze parti? Beh questa è una bella gatta da pelare. Facendo un pò di ricerche in internet ho trovato i seguenti link:
- What is the best way to solve an Objective-C namespace collision?
- AlternativesToPrefixing
- Compatibility Alias
Insomma una soluzione definitiva e omnicomprensiva non esiste. Però possiamo fare il possibile per evitare il problema. Il resto è tutto in mano ad Apple.
E comunque… lunga vita ai namespace!
[...] seguito ad un mio post sui namespace in Objective-C. Sembra che il tema ultimamente stia creando interesse in rete. Aggiungo un tassello [...]