title: Can you send objects other than strings in URLQueryItems?
body: <p>Ok, I am building an iMessage app and to transfer data back and forth I have to use <code>URLQueryItem</code>s. I am working with an <code>SKScene</code> and need to transfer <code>Int</code>s, <code>CGPoint</code>s, images, etc. Reading Apple's documentation and my own attempts it seems like you can only store strings in <code>URLQueryItem</code>s. </p>
  
  <p>As this us the only way to pass data back and forth, is there a (better) way to store other types of data? Currently I have been doing this:</p>
  
  <pre><code> func composeMessage(theScene: GameScene) {
          let conversation = activeConversation
          let session = conversation?.selectedMessage?.session ?? MSSession()
  
          let layout = MSMessageTemplateLayout()
          layout.caption = "Hello world!"
  
          let message = MSMessage(session: session)
          message.layout = layout
          message.summaryText = "Sent Hello World message"
  
          var components = URLComponents()
          let queryItem = URLQueryItem(name: "score",value: theScene.score.description)
         components.queryItems = [queryItem] //array of queryitems
          message.url = components.url!
  
          print("SENT:",message.url?.query)
  
          conversation?.insert(message, completionHandler: nil)
      }
  </code></pre>
  
  <p>Then on the flip side I have to convert this string back to an <code>Int</code> again. Doing this with <code>CGPoint</code>s will be inefficient.. how would one pass something like a <code>CGPoint</code> in a <code>URLQueryItem</code>? Any other way than storing the x and y values as strings?</p>
  
  <p>EDIT: This is how I have been receiving data from the other person and putting into their scene:</p>
  
  <pre><code>override func willBecomeActive(with conversation: MSConversation) {
          // Called when the extension is about to move from the inactive to active state.
          // This will happen when the extension is about to present UI.
  
          // Use this method to configure the extension and restore previously stored state.
  
          let val = conversation.selectedMessage?.url?.query?.description
           print("GOT IT ", val)
  
          if(val != nil)
          {
              scene.testTxt = val!
          }
      }
  </code></pre>