title: Why cStringUsingEncoding: returns const char * instead of char *?
body: <p>cStringUsingEncoding: returns a "const char *" despite it is returning a dynamically allocated C string(from it's documentation). So, what is the purpose of const here? We could simply modify the returned C string by casting to char *.</p>
  
  <blockquote>
    <p><strong>cStringUsingEncoding:</strong></p>
    
    <p>The returned C string is guaranteed to be valid only until either the
    receiver is freed, or until the current autorelease pool is emptied,
    whichever occurs first.</p>
  </blockquote>
  
  <p>I think library is following the common practice of pointer-to-const; it's not expected to be modified or released.</p>
  
  <blockquote>
    <p><strong>From Objective-C runtime;</strong></p>
    
    <p><strong>const char *</strong> object_getClassName(id obj) -- Nothing specified about the returned string.</p>
    
    <p><strong>char *</strong> method_copyArgumentType(Method method, unsigned int index) -- You must free the string with free(). (May be it's advising because of it's returning a copy.)</p>
  </blockquote>