title: Share data with different types in UIActivityViewController
body: <p>There is a extremely similar question asked by the following post: <a href="https://stackoverflow.com/questions/13551042/different-data-for-sharing-providers-in-uiactivityviewcontroller">Different data for sharing providers in UIActivityViewController</a>. But my question is different. </p>
  
  <p>I know how to share different different data of the same type with different activities by using <code>itemForActivityType</code>. For example: </p>
  
  <pre><code>- (id) activityViewController:(UIActivityViewController *)activityViewController
            itemForActivityType:(NSString *)activityType
  {
      if ( [activityType isEqualToString:UIActivityTypePostToTwitter] )
         return @"This is a #twitter post!";
      if ( [activityType isEqualToString:UIActivityTypePostToFacebook] )
         return @"This is a facebook post!";
      if ( [activityType isEqualToString:UIActivityTypeAirDrop] )
         return @"Airdrop message text";
      else
         return nil;
  }
  </code></pre>
  
  <p>However, my question is: <strong>what if I have different kind of data to share with different activities, what should I do?</strong>. For example, what if I would like to share:</p>
  
  <ul>
  <li>a string on Twitter;</li>
  <li>a array of an string and and image on Facebook;</li>
  <li>the actual data of the image (e.g. NSData) with Airdrop.</li>
  </ul>
  
  <p>P.S.:</p>
  
  <p>I also looked at the following protocol function:</p>
  
  <pre><code>- (id)activityViewControllerPlaceholderItem:;
  </code></pre>
  
  <p>However, I cannot use it because we don't know the value of <code>activityType</code> here. </p>