title: conditional cast from [Message] to [Message] always succeeds
body: <pre><code>if let context = delegate?.managedObjectContext {
  
  
          do {
  
        let fetchRequest = NSFetchRequest&lt;Message&gt;(entityName: "Message")
  
            let messages = try(context.fetch(fetchRequest) as? [Message])
  </code></pre>
  
  <blockquote>
    <p>This gives me the error "conditional cast from [Message] to [Message] always succeeds"</p>
  </blockquote>
  
  <pre><code>            for message in messages! {
                  context.delete(message)
  
              }
              try(context.save())
  
          } catch let err {
              print (err)
          }
  </code></pre>
  
  <blockquote>
    <p>Can someone help me understand what I'm doing wrong?</p>
  </blockquote>