In my opinion, there are two drawbacks:
1. Initialization Procedure
A well-known problem with static initializers in C ++ is the initialization order. This is probably not a big deal when working with colors or fonts. But once you include your own objects, it can quickly become a mess when the constructor of one instance accesses another static object.
2. Objective-C ++ itself
If you use this style, you are bound to Objective-C ++. Not using (pure) Objective-C is inconvenient and error prone when working with other developers or using code from another place. There are many subtle differences between the two languages, and many of them will come and bite you, especially if you are not very experienced with both languages.
There are certain scenarios where you should use Objective-C ++, but I would not use it just for convenience.
source share