Hi Mike,

This AudioUnit issue is basically entirely due to a limitation of Objective C. 
There are no namespaces in Objective C. I am a little surprised that ObjC2 did 
not add a namespace feature. (*)

Usually, the namespace collisions do not occur because most Cocoa developers 
build all of their code into an application without plugins. The AudioUnit case 
is somewhat unique, because ObjC code from many different developers ends up 
being loaded into the same application (Logic, Live, etc.) where the class name 
conflicts can occur. It's very hard to coordinate names among different 
developers, so one solution is to register with Apple for a free Creator Code 
and use that four-character string as a prefix to all custom classes. Since 
Apple guarantees that Creator Codes will not conflict, that guarantees the 
class names won't conflict between developers (if they use this technique).

Jeff has a particularly difficult challenge, because his wrapper is intended to 
be used by many different developers. Unless the wrapper build environment 
requires some sort of developer code, then there's no easy way to segregate 
developers.

By the way, Jeff, you could look into Xcode templates, where you could query 
your wrapper users for a unique Manufacturer code that would then be used as 
part of the CocoaUI class name. Not sure how much that would help.

Brian Willoughby

* In my opinion, the dynamic polymorphism features of ObjC are worth it, even 
if they come with this namespace problem.


On Nov 28, 2017, at 3:22 PM, Admiral Quality <[email protected]> wrote:
> Have Apple ever explained why there's no namespace feature to avoid
> this nonsense?
> 
> And yes, any UUID should do. A suitably long hash of the current time
> is probably a fairly safe bet.
> 
> - Mike/AQ
> 
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to