title: What is the best way to initialize NSMutableString object?
body: <p>If I take a following question. What is the best way to initialize NSMutableString Class?
  (All instance will be return at unexpected times... so I'll assume that the initialization as follows:)</p>
  
  <ol>
  <li><p>If I know in advance the amount of work. ( expected )</p>
  
  <pre><code>NSMutableString *str1 = [NSMutableString stringWithString:@""];
  NSMutableString *str2 = [NSMutableString stringWithCapacity:0];
  NSMutableString *str3 = [NSMutableString stringWithCapacity:1000];
  NSMutableString *str4 = [NSMutableString string];
  
  for(int i = 0; i&lt; 1000; i++)
  {
      //The following tasks.(Adding to the string to continue working.)
      [/*str1~str4*/ appendFormat:@"%d", i];
  }
  </code></pre></li>
  <li><p>If I don't know in advance the amount of work. ( unexpected )</p>
  
  <pre><code>NSMutableString *str1 = [NSMutableString stringWithString:@""];
  NSMutableString *str2 = [NSMutableString stringWithCapacity:0];
  NSMutableString *str3 = [NSMutableString stringWithCapacity:1000];
  NSMutableString *str4 = [NSMutableString string];
  
  for(int i = 0; i&lt; /*a large of size(unpredictable)*/ ; i++)
  {
      //The following tasks.(Adding to the string to continue working.)
      [/*str1~str4*/ appendFormat:@"%d", i];
  }
  </code></pre></li>
  </ol>
  
  <p>Largely split into two when performing these tasks, What is the best way to initialize? </p>
  
  <p>I sometimes when working with these task is also confusing.</p>