title: Why cant I unwrap a UserDefault type string? [Swift 3.0 - Xcode 8]
body: <p>I've stored data sent back by delegate as a user default and I'm trying to prepare it to send in a segue. I am able to send it in a segue, the problem I'm having is the data comes out in the form <code>"optional[Data]"</code> I know what optional means, but it doesn't let me unwrap UserDefault like an optional, even though it says it is optional?</p>
  
  <p>Here's the code:</p>
  
  <pre><code> func DataToPass(ArrayName: [String]) {
      print("Check ArrayContent---&gt;",ArrayName)
      var DCollect = [String]()
      var CCollect = [String]()
      DCollect.append(ArrayName[0])
      CCollect.append(ArrayName[1])
      let defaults = UserDefaults.standard
      if let unwrap = defaults{
          unwrap.set(DCollect, forKey: "DCollect")
          unwrap.set(CCollect, forKey: "CCollect")
      }
  }
  </code></pre>
  
  <p>The error is: </p>
  
  <blockquote>
    <p>"Initializer for conditional binding must have Optional type, not
    'UserDefaults'" on line <code>if let unwrap = defaults{</code></p>
  </blockquote>
  
  <p>Why can't I unwrap it like this?</p>
  
  <p>Another Attempt:</p>
  
  <pre><code>    func DataToPass(ArrayName: [String]) {
          print("Check",ArrayName)
          UserDefaults.standard.set(ArrayName, forKey: "ToCollect")
          }
  
  
       override func prepare(for segue: UIStoryboardSegue, sender: Any?){
          if segue.identifier == "SegueInfo"{
          let firstController = segue.destination as! ViewController
          if let Tosend = UserDefaults.standard.value(forKey: 
          "ToCollect") as? String {
          Collect.append(Tosend)
          }
          firstController.AllData = Collect
              }
  </code></pre>
  
  <p>Nothing is appended this way, Tosend is empty?</p>