title: Objective-C Is it safe to overwrite [NSObject initialize]?
body: <p>Basically, I have the following code (explained here: <a href="https://stackoverflow.com/questions/4658810/objective-c-constants-in-protocol">Objective-C Constants in Protocol</a>)</p>
  
  <pre><code>// MyProtocol.m
  const NSString *MYPROTOCOL_SIZE;
  const NSString *MYPROTOCOL_BOUNDS;
  
  @implementation NSObject(initializeConstantVariables)
  
  +(void) initialize {
       if (self == [NSObject class])
       {
           NSString **str = (NSString **)&amp;MYPROTOCOL_SIZE;
           *str = [[MyClass someStringLoadedFromAFile] stringByAppendingString:@"size"];
           str = (NSString **)&amp;MYPROTOCOL_BOUNDS;
           *str = [[MyClass someStringLoadedFromAFile] stringByAppendingString:@"bounds"];
       }
  }
  
  @end
  </code></pre>
  
  <p>I was wondering: Is it safe for me to have a category that overrides the NSObject's <code>+initialize</code> method?</p>