title: Generic Objective-C description method to print ivar values
body: <p>In Objective-C, it's common to override <code>-description</code> with a method that prints the object ID and instance variable names/values. I'd like to make a generic <code>-description</code> method that does this through introspection, rather than manually doing this for each class. I'd like the output to be something like:</p>
  
  <pre><code>&lt;ClassName: 0x??????, ivar1: value1, ivar2: value2, ivar3: value3, ...&gt;
  </code></pre>
  
  <p>It would also be nice to sort by instance variable name (so they are always in the same order). Finally, if this could be put into a category safely overriding the <code>NSObject</code> functionality, that would be perfect (but I see that's not straightforward, as <code>NSObject.m</code> has a warning about using <code>-[NSString stringWithFormat:]</code> in <code>-description</code>).</p>